전체 글 88

본캠프 : Spring 숙련_Bean Validation

[ Bean Validation 적용 방법 ]-Bean Validation은 입력 값(데이터)의 유효성을 검사하는 기능을 제공하는 표준 Java API입니다.-Spring Boot에서는 javax.validation 패키지를 사용하여 자동 검증을 쉽게 적용할 수 있습니다.-핵심 개념:@Valid 또는 @Validated를 사용하여 컨트롤러에서 검증 수행@NotNull, @Size, @Pattern 등의 유효성 검증 어노테이션 적용검증 실패 시 예외 처리 (MethodArgumentNotValidException)1. Bean Validation 의존성 추가 2. 요청 DTO 클래스에 검증 어노테이션 적용@NotNull@NotEmpty@NotBlank@Email@Size(min, max)@Pattern(r..

개발/부트캠프 2025.02.12

본캠프 : 특강

JPASpring Data JPA의 메서드 명명 규칙에 따라 findByActiveTrue()라는 메서드를 작성하면, 내부적으로 "SELECT * FROM users WHERE active = true" 쿼리가 자동 생성JPA의 엔티티 매핑(Entity Mapping) 기능 덕분에, User 엔티티와 users 테이블의 컬럼이 자동으로 매핑JPA는 내부적으로 Reflection을 사용하여 User 클래스의 필드에 ResultSet 값을 자동으로 채워줌파라미터 바인딩이 자동으로 처리됨JPA의 메서드 네이밍 전략에 따라, findByRole(String role)을 작성하면 "SELECT * FROM users WHERE role = ?" 쿼리를 자동 생성하고, ? 자리에 role 값을 자동으로 채움자동 트..

개발/부트캠프 2025.02.11

본캠프 : 특강_협업 관점에서의 Git

팀장 철수와 팀원 영희 (파란색은 팀장, 분홍색은 팀원) 1. Organization 생성New Organization 클릭Create a free organization 클릭모두 입력/체크 후 Next 클릭일단 Complete Setup 클릭 (추후 초대 권장)People - Invite Member 클릭팀원의 email address을 검색하여 초대 (팀원은 이메일을 확인하여 수락)Settings - Member privileges - Base permissions - Write 로 수정2. Repository 생성Repositories - Create a new repository외부에게 공개가 되어야 하므로 반드시 ‘Public’으로 생성3. IntelliJ Project 생성 4. GitHub ..

개발/부트캠프 2025.02.10

본캠프 : Spring 숙련_특강_JPA를 활용한 프로젝트 / 전반적인 작업 과정

💡JPA를 활용한 프로젝트! 전반적인 작업 과정!  1. 프로젝트 생성(Spring Boot)Create Git repositoryJavaGradle-GroovyJDK : 17.xx.xxJava : 17Jar2. 의존성(Dependency) 추가*Spring Boot 3.x.x 버전Spring WebLombokMySQL DriverSpring Data JPA(H2 Database)3. 편의 기능 설정*macOS: command + ,*Windows: Ctrl + Alt + S(Auto Import)Editor - General - Auto Import : Always, Add ~, Optimize~(Editor Zoom) Editor - General : Mouse Control - Change ~ M..

개발/부트캠프 2025.02.07

본캠프 : Spring 숙련_3주차 실습

영속성(Persistence)이란 데이터를 영구적으로 저장하는 능력을 말합니다. 소프트웨어 시스템에서는 주로 데이터베이스, 파일 시스템, 영속 저장소와 같은 외부 저장소에 데이터를 저장하는 것을 영속성이라고 합니다.  복호화 또는 디코딩(decoding)은 부호화(encoding)된 데이터를 부호(code)화 되기 전 형태로 바꾸어, 사람이 읽을 수 있는 형태로 되돌려놓는 것입니다. 암호화(부호화, encoding, encryption)의 반대말로서의 복호화는 decryption이라고 부릅니다. 캐시(Cache)는 데이터나 값을 임시로 저장해 놓는 공간으로, 시스템의 성능을 향상시키는 데 사용됩니다. PK는 기본키(primary key)를 의미합니다. 테이블의 행을 식별할 수 있는 정보로, 관계형 데이터..

개발/부트캠프 2025.02.06

본캠프 : Spring 숙련_2주차

인증과 인가인증(Authentication)사용자가 누구인지 확인하는 과정ex) 로그인인가(Authorization)사용자가 어떤 권한을 가지고 있는지 결정하는 과정반드시 인증이 선행되어야 한다.ex) 회원만 조회 가능한 게시글, 본인이 작성한 게시글 수정쿠키(Cookie)정의웹 브라우저(Client 측)에 저장되는 데이터용도사용자의 방문 기록, 로그인 상태 유지, 개인 맞춤 설정 등을 저장, HTTP 특성 극복, 광고 정보특징클라이언트 측에 저장되며, 서버에 요청을 보낼 때마다 포함되어 전송됨.수명만료 날짜를 설정할 수 있음, 세션 쿠키(브라우저 종료 시 삭제)와 영속 쿠키(지정된 기간 동안 유지)로 구분됨.세션(Session)정의사용자와 서버 간의 상태를 유지하기 위한 방법.용도로그인 정보, 사용자 ..

개발/부트캠프 2025.02.05

본캠프 : Spring 숙련_1주차

▶ SOLID 원칙객체 지향 설계의 5가지 기본 원칙, 소프트웨어 설계에서 유지보수성, 확장성, 유연성을 높이기 위한 지침을 제공한다. -SOLID 원칙의 종류1.단일 책임 원칙 SRP(Single Responsibility Principle): 하나의 클래스는 하나의 책임만 가져야 한다.클래스는 한 가지 기능에 집중해야 하며, 그 외의 기능을 담당하지 않아야 한다 2.개방 폐쇄 원칙 OCP(Open Closed Principle): 소프트웨어 요소는 확장에는 열려 있어야 하고, 수정에는 닫혀 있어야 한다.새로운 기능을 추가할 때 기존 코드를 수정하지 않고, 확장할 수 있도록 설계해야 한다. 3.리스코프 치환 원칙 LSP(Liskov Substitution Principle): 자식 클래스는 언제나 부모..

개발/부트캠프 2025.02.04

본캠프 : 개인 과제(일정 관리 앱 만들기) 트러블 슈팅

1. 개요일정 관리 앱 만들기 과제를 진행하며, 겪은 이슈를 다뤄보겠습니다. 2. 트러블 슈팅 (1) NullPointException ● 배경단건 일정 수정 시 상태코드 500 서버 에러 발생 ● 원인'schedule.getPassword()' is null로 비밀번호 데이터를 불러올 수 없음schedule은 scheduleRepository.findById(id)를 통해 데이터를 가져오는데 그렇다면 해당 코드에 문제가 있을 것으로 생각함findById(id)의 sql query코드에서 비밀번호를 가져오는 코드가 없음 ● 해결방법rs.getString("password")를 추가하여 schedule.getPassword()가 정상적으로 작동함  (2) Refactoring - 전체 일정 조회 시 요청 ..

개발/부트캠프 2025.02.03

본캠프 : 개인 과제(일정 관리 앱 만들기)_ CRUD & 3 Layered Architecture 동작 과정

▶ 전체 일정 조회(READ - GET) 동작 과정(1) Controller@RequestParam(required = false) → 쿼리 파라미터가 없어도 동작클라이언트가 updatedAt과 name을 선택적으로 전달 가능GET /schedules → 모든 일정 조회GET /schedules?updatedAt=2025-01-31 → 특정 날짜의 일정 조회GET /schedules?name=홍길동 → 특정 name 일정 조회GET /schedules?updatedAt=2025-01-31&name=홍길동 → 두 조건 모두 충족하는 일정 조회(2) Service scheduleRepository.findAll(updatedAt, name) 호출DB에서 조회 조건에 맞는 Schedule 객체 리스트를 가져옴..

개발/부트캠프 2025.02.02

본캠프 : Spring 기초_특강2_@AllArgsConstructor & @RequiredArgsConstructor

@AllArgsConstructor와 @RequiredArgsConstructor는Lombok 라이브러리에서 제공하는 어노테이션으로, 두 어노테이션 모두 클래스에 생성자를 자동으로 생성해주는 역할을 합니다. 하지만 생성되는 생성자의 범위와 포함되는 필드가 다릅니다. @AllArgsConstructor기능: 클래스의 모든 필드를 포함하는 생성자를 자동으로 생성합니다.사용 사례: 클래스의 모든 필드를 초기화해야 하는 생성자가 필요한 경우.특징:final 필드, @NonNull이 적용된 필드, 그리고 일반 필드(초기값이 없는 필드)를 모두 포함합니다.모든 필드를 초기화하는 생성자가 생성됩니다. @RequiredArgsConstructor기능: final 필드와 @NonNull이 적용된 필드만 포함하는 생성자를..

개발/부트캠프 2025.01.31