
웹의 동작 원리를 한 줄로 표현하면, "클라이언트가 서버에 요청을 보내면, 서버는 해당 요청에 대한 응답을 한다." 이다.🔎 웹(Web) 용어 정리 ✅ Web Client사용자가 웹에 접근하는 프로그램클라이언트는 사용자로부터 받은 URL에 대한 정보를 찾아 HTTP
스프링은 자바 언어 기반의 프레임워크자바 언어의 가장 큰 특징 - 객체 지향 언어스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크
이번 장에선 스프링 부트 스타터로 스프링 프로젝트를 생성하는 방법을 알아본다. 📖 start.spring.iospring initializr

최근 IntelliJ 버전에서는 Gradle을 통해서 실행하는 것이 기본 설정으로 되어있다.배포 및 협업 시에는 Gradle이 통일된 개발 환경을 제공할 수 있으나 Gradle을 통하면 속도가 느리므로, 개인 공부 등 상황에 따라 자바로 직접 실행하도록 변경하면 실행
빌드 툴

오늘은 본캠프 20일차에 배운 내용을 기록한다.모든 클라이언트 요청을 단일 진입점(Single Point of Entry)에서 처리하는 디자인 패턴이다.요청에 대한 공통 처리(보안, 로깅, 인코딩 등)를 중앙에서 효율적으로 관리할 수 있으며, 개별 요청을 처리할 핸들러

오늘은 본캠프 21일차에 배운 내용을 기록한다.소프트웨어 시스템을 3개의 논리적 계층으로 분리하는 아키텍처이다.3개의 레이어로 분리Controller Layer (Presentation Layer)Service Layer (Business Layer, Applicati
오늘은 본캠프 22일차에 배운 내용을 기록한다.스프링 컨트롤러에서는 파라미터를 전달받을 때 자주 사용하는 3가지 방법이 있다.✅ 데이터 위치: URL 경로✅ 형식: /users/{id}✅ 용도: RESTful API에서 리소스 식별자로 많이 사용✅ 호출 예시: /use
오늘은 본캠프 23일차에 배운 내용을 기록한다.JPA가 DB와 직접 연결하지 않고 엔티티 객체를 관리하는 메모리 공간이다.즉, JPA를 통해 엔티티를 저장하거나 조회하면 이 객체는 영속성 컨텍스트에 보관된다.DB랑 직접 연결해서 쓰면 매번 SQL을 실행해야 하지만, J
오늘은 본캠프 28일차에 배운 내용을 기록한다.오늘 과제에서 생긴 문제를 해결하던 중에 팀원분들에게 조언을 받았다.나는 회원 이름으로 조회할 때 @RequestParam을 이용해서 쿼리 스트링으로 조회했는데, 팀원분들은 GetMemberRequest 처럼 DTO로 이름
오늘은 본캠프 26일차에 배운 내용을 기록한다.Model은 데이터 구조와 비즈니스 로직을 나타내는 광범위한 개념이다.MVC 패턴에서 모델은 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 포함한다.일반적으로 model 패키지는 애플리케이션에서 사용하는 데이
오늘은 본캠프 31일차에 배운 내용을 기록한다.세션에서 막힌지 며칠 된 것 같은데 세션이 왜 이렇게 이해가 힘들었는지 모르겠다.머릿 속에서 내부적으로 동작 흐름이 납득이 안 됐는지 이해를 했다고 생각해도 사용하려고 하면 외워서 쓰는 것 같은 기분에 영 찝찝했다.그래도
오늘은 본캠프 32일차에 배운 내용을 기록한다.저번에 공통 응답 객체에 대해 공부 했었는데, 저번에 한 내용은 너무 얕은 내용이여서 오늘 구현한 내용을 다시 정리하려고 한다.각 API 마다 다른 응답 구조 가지는 것은 좋지 못하다.예를 들어, 성공 응답은 그냥 JSON
오늘은 본캠프 33일차에 배운 내용을 기록한다.이번에는 저번에 했던 일정 관리 프로젝트를 디벨롭 하는 과제였는데, 지난 번보다 과제의 난이도가 있어서 그런지 중간 중간 문제가 꽤 있었다.분명히 테이블 내에 member_id 컬럼이 있는데 자꾸 없다고 하는 문제였다.ap
오늘은 본캠프 36일차에 배운 내용을 기록한다.오늘은 팀프로젝트 구현 첫 날이였는데 나는 회원가입, 로그인, 로그아웃 부분을 맡았다.처음엔 세션으로 구현하다가 JWT로 바꾸게 됐는데 진짜 캠프 시작 이래로 이렇게 머리가 빠개질 뻔한 건 처음이였다.세션을 어려워 했던 나
오늘은 본캠프 37일차에 배운 내용을 기록한다.드디어 JWT 로그인 구현을 끝냈다!아직 예외 처리도 다듬어야 하고 인가(권한)는 구현하지 못 했지만, 차근 차근 개념을 쌓아가면서 구현해보려고 한다.근데 JWT에 몰두하다가 CRUD나 JPA를 까먹을까봐 걱정이긴 하다.코

오늘은 본캠프 39일차에 배운 내용을 기록한다.Spring Security에서는 인증과 인가를 위해 Principal을 아이디로, Credential을 비밀번호로 사용하는 Credential 기반의 인증 방식을 사용한다.✅ Principal(접근 주체): 보호받는 Re

오늘은 본캠프 42일차에 배운 내용을 기록한다.페이징 과제가 끝난지 한참 됐는데 아직도 페이징 공부를 전혀 안 했다.일단 내일은 N+1 문제 강의를 듣고 공부하면서 JPA 공부 좀 해야겠다.음...스프링이랑 스프링 시큐리티 내부 동작 흐름도 공부해야 하는데...페이징은
이번 포스팅에서는 본 캠프 43일차에 배운 내용을 기록한다.너무 졸린 하루였다.하루 종일 졸고 세션 때도 졸고 심지어 이 글을 쓰는 지금도 졸고 있다.남은 시간 동안 집중해서 공부를 끝내고 일찍 자야겠다.오늘 강의에서는 N+1 문제를 다루었다.N+1 문제가 무엇인지,

이번 포스팅에서는 본 캠프 44일차에 배운 내용을 기록한다.어디선가 개발 시간의 절반 이상을 테스트 코드 작성에 쓴다는 말을 들은 적이 있다.테스트 주도 개발(Test-Driven Development, TDD)이라는 프로그래밍 방법도 있는 만큼,테스트 코드 작성은 중