본문 바로가기
728x90
320x100

💻 하나씩 차곡차곡/Back-end66

Spring 프로젝트에서 of()와 from() 언제 써야 할까? ✅ of()를 쓰는 경우도메인 내부의 값으로부터 만들 때 주로 사용함예를 들어, 필드 몇 개를 직접 넣어줄 때public class User { private String name; private int age; public static User of(String name, int age) { User user = new User(); user.name = name; user.age = age; return user; }}말 그대로 "이 값들(of name, age)로부터 User를 만든다"는 느낌 ✅ from()을 쓰는 경우다른 객체(DTO 등)로부터 변환할 때 사용함뭔가를 변환해서 만들 때의 느낌이 강함public class Us.. 2025. 6. 14.
Swagger(Web API 문서) 적용 1️⃣ Swagger란?API 명세를 자동으로 문서화해주는 도구.개발자는 API 만들 때 @RestController, @GetMapping 등 스프링 애노테이션만 써도 Swagger가 자동으로 읽어서 정리해줌.API를 테스트/공유/디버그할 때 엄청 편리함 2️⃣ 적용 방법Build.gradle 추가implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:버전'여기까지 해주면 ...별도 설정 없이도 기본으로 API 문서 생성됨 (특별히 API 설명을 더 하고 싶으면 @Operation, @ApiResponses 같은 걸 붙이면 됨.) 3️⃣ 접속 & 확인 방법👉 접속 주소:Swagger UI 페이지:http://localhost:8081/sw.. 2025. 5. 8.
모놀리식 아키텍처 VS MSA 아키텍처 ✅ 모놀리식 아키텍처(Monolithic Architecture)란?애플리케이션의 모든 기능이 하나의 덩어리(프로세스)로 묶여서 돌아가는 구조.특징:단일 코드베이스: 모든 기능(회원, 결제, 주문 등)이 한 프로젝트 안에 있음.단일 데이터베이스: 보통 하나의 DB로 관리.배포도 한 번에: 기능 하나만 바꿔도 전체 애플리케이션을 재배포.간단한 구조: 초기 개발이 빠름, 관리 포인트가 적음.✅ MSA (Microservice Architecture)란?애플리케이션을 여러 개의 독립적인 서비스(마이크로서비스)로 나눠서 운영하는 구조.특징:서비스별 분리: 회원, 게시글, 알림 등 각각 별도 서비스(보통 독립 배포도 가능).독립 데이터베이스: 서비스별로 DB도 따로 가질 수 있음 (DB 분리 권장).독립 배포.. 2025. 5. 8.
[JPA/QueryDSL] 엔티티가 올바른 경로에 있음에도 자꾸 컴파일 에러가 뜹니다. 🛠️ 문제 상황JPA와 QueryDSL을 사용하는 프로젝트에서 레파지토리나 서비스에서 엔티티를 Import해서 가져다 쓰는데, 소스코드상으로는 빨간줄도 없고, 에러도 없는데 컴파일 시에, 해당 엔티티가 존재하지 않는다고 떠서 미쳐버릴 때. 🛠️ 발생이유QueryDSL을 적용한 상태에서 새로운 엔티티를 만들면 QueryDSL이 자동으로 Q클래스를 생성하는데 엔티티 생성하고 바로 Q클래스 적용이 안되어 있어서 인식을 못해 발생한 문제임. 🛠️ 해결방법./gradlew clean build -x test터미널에서 재 빌드를 시켜줌-x test를 넣은 이유는 test까지 재빌드 하려니까 시간이 오래걸려서 test를 제외 하고함. 2025. 5. 1.
[깃/깃허브(git/github)] 커밋(Commit) & 푸시(Push) 하기 / 기본적인 충돌 상황 해결하기 (IntelliJ GUI.ver + 터미널 CLI.ver) 깃, 깃허브를 활용하여 커밋 & 푸시 하는 법 그리고 기본적인 충돌상황에서 해결하는 법 정리하기 📌 (선행) 프로젝트 소스 최신 상태로 만들기일반적으로 Git 커밋(Commit) & 푸시(Push) 를 하기 전엔 GUI, CLI 상관 없이 무조건 프로젝트를 최신 상태로 만들어 줘야 함. 안그럼 충돌이 남. 💻 IntelliJ GUI 버전 💻 터미널 버전git pull origin main 📌 일반적인 Git 커밋(Commit) & 푸시(Push) 방법 💻 IntelliJ GUI 버전1. 소스를 수정함 2. 인텔리제이 좌측에 [Commit] 아이콘을 클릭해주고, 커밋 & 푸시할 소스를 선택한 후아래에 반드시 커밋 메시지를 작성한 후 하단에[ Commit and Push] 버튼을 클릭해줌※ .. 2025. 4. 30.
[Git/Github] 혼자서 북 치고 장구치는 Git Flow 연습하기 브랜치도 만들어 봤고.....PR도 해봤는데...깃 플로우를 모른다고요...? 해봄되죠.....🧠 Git Flow란?브랜치를 무작정 만들지 않고, 정해진 규칙에 따라 체계적으로 개발하는 방법쉽게 말하면"언제 어떤 브랜치를 만들고, 언제 어디에 합칠지를 정해놓은 규칙" ✨ Git Flow 브랜치 종류브랜치 이름용도master실제 배포용 (항상 안정된 상태)develop개발을 모아두는 브랜치 (feature 브랜치 통합)feature/기능명새로운 기능 개발할 때 쓰는 브랜치release/버전명출시 준비할 때 쓰는 브랜치hotfix/버그명긴급하게 버그 수정할 때 쓰는 브랜치 이번 실습 역시 브랜치 생성, 병합을 할줄 알아야 함. 모른다면 아래 포스팅 반드시 참고할 것. [Git/Github] 혼자서 북 치.. 2025. 4. 28.
728x90
320x100