
이번 단계에서는 Spring Boot 애플리케이션을 Docker 컨테이너로 실행하고,GitHub Actions를 이용해 코드 Push 시 자동으로 서버에 배포되는 CI/CD 파이프라인을 구축하는 것을 목표로 했다.이 과정을 통해“로컬에서는 되는데 서버에서는 안 되는 문

최종적으로 필수 과제를 끝냈을 때의 구조는 아래와 같다.로컬 개발 단계에서는Spring BootH2로 빠르게 기능을 구현했고,운영 배포 단계에서는EC2 -> 애플리케이션 서버RDS(MySQL) -> 데이터 저장S3 -> 이미지 파일 저장Parameter Store ->

단순히 개발이 완료된 상태와 운영 가능한 상태는 다름!최종 목표는 코드의 완성이 아니라, 운영이 가능한 상태로 만드는 것새벽 3시 장애 발생❌ 운영 불가: "서버 들어가서 확인해봐야..." → 2시간 소요✅ 운영 가능: 헬스체크 DOWN → 로그 확인 → 10분 내 원

정의: 서비스를 요청하는 사용자 기기나 소프트웨어예시: 브라우저(크롬, 사파리 등)역할: 사용자의 명령을 받아 서버에 "이 작업을 처리해줘"라고 요청(Request)을 보냄정의: 클라이언트와 서버가 서로 데이터를 주고받을 수 있게 연결해 주는 망예시: 인터넷역할: 클라
Spring 심화 도전 기능 (Lv5 ~ Lv7) 이번 단계에서는 기존 필수 기능 위에 다음 작업을 진행했다. JWT 인증 구조 리팩토링 인증 책임 분리 ArgumentResolver 활용 단위 테스트 작성 테스트 커버리지 측정 단순히 기능을 추가하는 것이 아니라

Lv5에서 관리자 API 로깅 기능(Interceptor + AOP)을 구현하면서 WebConfig를 수정하였다.이 과정에서 AuthUserArgumentResolver를 생성자 주입 방식으로 관리하도록 구조를 정리하였다.기존 코드에서는 HandlerMethodArgu

Lv0: 애플리케이션 실행을 위한 JWT 키/DB 설정Lv1: @Auth AuthUser 파라미터 바인딩을 위한 ArgumentResolver 등록Lv2: 회원가입/로그인 및 비밀번호 검증 로직 리팩토링(가독성/책임 분리)Lv3: N+1 해결 (fetch join ->

이번 팀 프로젝트에서 내가 맡은 파트는 관리자(Admin) 도메인이었다.초반에는 인증(세션) 기능을 먼저 구현했고, 그 다음 단계로 “관리자 관리 기능” 체크리스트(READ/WRITE)를 끝까지 완성하는 게 목표였다.관리자 체크리스트에서 “Read/Write”는 아래

팀 프로젝트에서 “백오피스 관리자” 파트를 맡게 되면서, 필수 기능 중 세션 기반 인증(쿠키/세션)을 먼저 구현했다.관리자 회원가입 API (기본 상태: 승인대기 PENDING, 비밀번호 암호화 저장)관리자 로그인 API (세션 생성 및 저장, ACTIVE만 로그인 가

이전 과제에서 기능은 동작했지만, 한 가지 큰 문제가 있었다.예외가 발생하면 대부분 400 또는 500으로만 내려갔다.로그인 안 해도 400존재하지 않는 일정도 400이메일 중복도 500Validation 실패도 기본 에러 페이지이 상태는 동작은 하지만 API답지 않은

이번 과제는 Spring Boot + JPA + MySQL로 일정(Schedule) CRUD를 만들고,Lv2부터는 User 연관관계, Lv4에서는 Cookie/Session 기반 로그인 인증까지 적용하는 것이 목표였다.Java 17Spring BootSpring Dat

인증은 사용자가 누구인지 확인하는 절차시스템에 등록된 사용자인지를 증명하는 과정이라고 할 수 있음웹사이트에 아이디와 비밀번호를 입력하여 로그인하는 것스마트폰 잠금을 지문이나 얼굴 인식으로 해제하는 것건물 출입구에서 신분증을 제시하여 신원을 확인받는 것인증 = 로그인인가

스프링 IoC 컨테이너가 관리하는 객체를 의미Spring 컨테이너에 의해 생성, 관리, 소멸됨애플리케이션 전역에서 재사용 가능기본적으로 싱글톤 스코프로 관리싱글톤(Singleton)은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴애플리케이션 전체에서

3 Layer Architecture는 소프트웨어 시스템을 세 개의 논리적 계층으로 분리하는 아키텍처3개의 레이어로 분리Controller Layer (Persentation Layer라고도 함)Service Layer (Business Layer, Applicatio

JDBC 자바 프로그램에서 데이터베이스에 접속하고 SQL 문을 실행하기 위한 도구JDBC로 할 경우)JPA로 할 경우)JDBC보다 JPA가 훨씬 간단하고 사용하기 편한 것을 알 수 있음객체 지향 프로그래밍 언어인 Java와 관계형 데이터베이스 간의 패러다임 불일치 문제

ERD는 데이터베이스의 구조를 시각적으로 표현하는 도구쉽게 말하자면, 테이블 구조를 그림으로 보여주는 설계도데이터베이스 구조를 한 눈에 파악할 수 있다.설계를 진행하며 논리적인 오류를 미리 발견하고 수정할 수 있다.데이터 구조를 문서화하여 다른 사람과의 소통을 원활하게

여러 사람이 공유하고 사용할 목적으로 한 곳에서 관리되는 데이터의 조직화된 집합으로, 데이터를 소프트웨어에서 효율적으로 관리하기 위한 저장소\-> 데이터의 집합 저장소관계형 DB(RDBMS) 가장 많이 사용하는 데이터베이스데이터를 테이블 형태로 구조화하여 저장하고 관리

백엔드와 프론트엔드의 역할이 분리됨에 따라, 프론트엔드는 화면에 그려낼 Data가 필요백엔드는 주로 이 Data를 JSON 형식으로 내려줌전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용@RestController는 @

ViewResolver는 컨트롤러가 반환한 논리적인 뷰 이름을 실제 뷰로 바꿔주는 번역기 역할을 함위 코드에서 return "hello"; 코드는 ViewResolver에 의해 ”/templates/hello.html”이라는 실제 뷰 파일 경로와 매핑됨여기서 “hell

모든 클라이언트 요청을 단일 진입점(Single Point of Entry)에서 처리하는 디자인 패턴요청에 대한 공통 처리(보안, 로깅, 인코딩 등)를 중앙에서 효율적으로 관리할 수 있으며, 개별 요청을 처리할 핸들러(Controller)로 작업을 위임하는 역할을 함전