Camp 27

[TIL] 고객 및 상품 관리 시스템 프로젝트 (이커머스 백오피스) API 설계

드디어 시작 된 팀 프로젝트...갈길이 멀고 이걸 과연 10일정도밖에 안되는 시간에 적절히 구현할 수 있을 지 의문이 들긴하지만 일단 시작을 하면 팀원들끼리 뭉쳐 어떻게든 되지 않을까 기도해본다. 본격적인 프로젝트 시작 전에 API 명세서를 직접 작성하면서 실제 엔드포인트 설계가 어떻게 이루어지는지 이해하고,사용자 관리라는 도메인에서 CRUD 작업과 상태 관리를 어떻게 API로 표현하는지부터 시작했다.REST API는 자원(resource)을 URL로 표현하고, HTTP 메서드(GET, POST, PATCH, DELETE)로 행동을 정의한다. 사용자 관리 API를 설계할 때는 사용자라는 자원을 중심으로 여러 엔드포인트가 생기는데, 단순한 CRUD만 아니라 역할 변경, 상태 변경처럼 부분적 업데이트가 필..

Camp/TeamProject 2026.07.10

[TIL]일정 관리 앱 Develop

Spring 과제에서 가장 어려웠던 3가지와 극복 방법Spring CRUD 과제를 진행하면서 가장 막혔던 부분들을 정리했다.1. Controller → Service → Repository 데이터가 왜 이렇게 흐를까Controller:CreateScheduleRequest request를 받음Service한테 보냄Service:Repository를 호출DB에서 받은 Schedule Entity를 DTO로 변환해서 반환Controller:Service에서 받은 DTO를 JSON으로 변환해서 응답알겠다 알겠는데 내손으로 구현이 안된다. 머리속이 뒤죽박죽 섞여서 흐름을 모르겠고 이 행동 다음에 어떤 행동을 해야하지 정형화가 안된다.결국 ai와 강의, 교안의 도움을 많이 아주 많이 받았다. DTO CreateS..

Camp/과제 2026.07.09

[TIL] Spring DI 정리 - @Bean, @Service, @Repository가 뭐 하는가

DI는 Dependency Injection의 줄임말이다. 쉽게 말해서 필요한 객체를 자동으로 주입받는 거다.세 가지 어노테이션의 역할:@Bean직접 설정 클래스에서 등록하는 객체다. 메서드 위에 붙여서 "이 객체를 Spring Container에 올려"라고 지시한다.언제 쓰는가: 라이브러리의 객체나 복잡한 설정이 필요한 객체를 등록할 때.@Service비즈니스 로직을 담당하는 객체다. 계산이나 처리 같은 핵심 기능을 여기에 넣는다.@Repository데이터베이스와 대화하는 객체다. DB에서 데이터 가져오기, 저장하기 같은 작업을 한다.실제 흐름:Controller -> @Autowired -> Service -> Repository -> Database1. 컨트롤러가 비즈니스 로직 필요 -> Servi..

Camp/Spring 2026.07.08

[TIL] CREATE 응답: Entity에서 JSON까지

DB에 저장된 Entity가 클라이언트에게 응답으로 돌아가는 과정과, DTO를 따로 두는 실제 이유를 이해하기.Memo Entity (DB 저장 완료)CreateMemoResponse (응답 DTO)JSON 문자열1. Service: Entity → CreateMemoResponse 변환저장된 Entity:Memo { id: 1 title: "스프링 공부" contents: "CRUD 흐름 이해하기" createdAt: 2026-07-06 12:00:00 updatedAt: 2026-07-06 12:00:00}이를 응답 DTO로 변환한다.public CreateMemoResponse(Memo memo) { this.id = memo.getId(); this.title = memo.ge..

Camp/Spring 2026.07.07

[TIL]메모 앱 CREATE 요청 추적하기

메모 생성 요청이 JSON으로 들어와서 데이터베이스에 저장되는 과정 추적하기.개념 구조JSON 문자열 ↓ CreateMemoRequest (입력 DTO) ↓ Memo Entity ↓ Database내용 정리1. 클라이언트가 보내는 JSON{ "title": "스프링 공부", "contents": "CRUD 흐름 이해하기"}네트워크를 통해 문자열로 전송된다.2. Controller: JSON → CreateMemoRequest@PostMappingpublic ResponseEntity create(@RequestBody CreateMemoRequest request) { return ResponseEntity.ok(memoService.save(request));}@RequestBody를 통..

Camp/Spring 2026.07.06

[TIL]CH 3 일정 관리 앱 만들기

본격적인 Spring 주차를 시작하고 처음 겪은 과제 일정 관리 앱 만들기,애초에 조금 시간이 빠듯하기도 했다고 느꼈지만 강의를 빠르게 듣고 일단은 바로 부딪혀보는게 답일 것 같았다.그리고 간신히 당일날에서야 마무리한 이번 과제정말정말정말 많은 에러들과 마주쳤다. 대부분은 작은 오타나 설정 실수였지만, 그 원인을 찾는 과정에서 배운 게 정말 많다.이번 과제 동안 겪었던 주요 문제들과 해결 방법을 정리해본다. 1. 프로젝트 이름과 패키지 이름을 통일하지 못해서 헤맴 처음에 Entity를 설계할 때는 패키지를 com.example.scheduler, 클래스 이름을 Scheduler로 잡기로 했다. 그런데 실제로 IntelliJ에서 폴더를 만들 때는 프로젝트 이름이 schedule였던 영향으로 나도 모르게 c..

Camp/과제 2026.07.01

[TIL] - 데이터베이스 생성부터 CRUD 실습까지

학습 목표 오늘은 데이터베이스와 테이블을 직접 만들어보고, INSERT, SELECT, UPDATE 쿼리를 차례로 실행해보면서 SQL의 기본 흐름을 몸으로 익히는 게 목표였다. CREATE부터 시작해서 데이터를 넣고, 조회하고, 수정하고, 다시 조회하는 한 바퀴를 끝까지 따라가 보는 실습이었다!단순히 코드 스니펫에서 복사 붙여넣기만 반복한 너무나도 단순한 실습 내용이었지만 본질은 그게 아닐듯 개념 구조 흐름을 순서대로 정리하면 이렇다. 1. 데이터베이스 생성 (CREATE DATABASE)2. 테이블 생성을 위해 새 콘솔 창 열기3. 테이블 안에서 데이터 삽입 (INSERT)4. 삽입한 데이터 조회 (SELECT)5. 데이터 수정 (UPDATE)6. WHERE 절로 조건부 조회7. 데이터 삭제8. 삭제..

Camp/Spring 2026.06.30

1-12 Servlet 개념 간단 실습

학습 목표Servlet과 Servlet Container의 개념과 역할 이해서블릿을 이용한 간단한 API(/hello) 구현Postman으로 직접 API를 호출해서 응답 확인개념 구조정적 웹페이지의 한계 ↓서블릿(Servlet) 등장 — "요청이 오면 서버에서 프로그램을 실행해서 동적으로 응답 생성" ↓서블릿 컨테이너(Tomcat) — 서블릿을 실행/관리하는 환경 ↓클라이언트 ↔ 서버 요청/응답 흐름 (Request, Response 객체) ↓API 구현 실습 (HelloServlet) → Postman으로 호출 테스트내용 정리1. 정적 웹페이지의 한계초기 웹사이트는 그냥 HTML 파일을 저장해두고, 요청이 오면 그 파일을 돌려주는 방식이었다.그래서 모든..

Camp/Spring 2026.06.29

[TIL] 입문 Spring - 객체/인터페이스부터 라이브러리·프레임워크까지

드디어 시작된 Spring 주차 아직 java도 제대로 익히지 못한 것 같은데 벌써 새로운 분야로 확장했다니.. 일단은 기본 개념 익히기를 위한 강의 들었다. 그래서 오늘 TIL은 강의에서 정리한 개념들로만 채운다. 객체와 생성자 클래스 코드만 짜놓고 끝내는 게 아니라, 그걸로 실제 객체(Object)를 만들어야 한다는 게 핵심. — 클래스는 빵틀, 객체는 그 틀로 찍어낸 빵. public class Bread { String name; // 빵의 이름 int calorie; // 빵의 칼로리} 클래스만 정의하면 아직 "틀"만 있는 상태다. 빵을 실제로 만들려면 생성자가 필요하다. 생성자는 `String name`, `int calorie` 같은 파라미터로만 객체를 만들 수 있게 강제하는 역할을 한다..

Camp/Spring 2026.06.25