전체 글 92

본캠프 : 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

[스파르타코딩클럽 후기] 본캠프 : "기초 Spring" 강의 완강

설 연휴에도 공부한 나를 칭찬하며 스파르타코딩클럽 후기를 작성해 본다ㅎㅎ 처음으로 배우는 Spring!이라서 당연히 초보자인 나에겐...  어려웠다. ㅠ_ㅠ1주차 강의를 들을 때는... 이게 무슨 말이지 싶었는데,  주차별 강의를 천천히 곱씹으며 따라가다 보니! 완강 후에는 Spring이 이런 거구나!! 유레카!!ㅎㅎ 어느 정도 감을 잡았다!  스파르타코딩클럽 "기초 Spring" 강의를 통해 기본적인 이론을 배우고 직접 코드를 따라 치며 진행하는 실습을 진행하며코딩의 감을 잡았다!! 이젠 이 흐름대로 다음 숙련 강의를 통해서 실력 향상을 해보자! 고고! 나는 할 수 있다!   💡 기초 Spring 강의 핵심 요약1.Spring MVC 구조프론트 컨트롤러 : DispatcherServlet어댑터 패턴 ..

개발/부트캠프 2025.01.27

본캠프 : Spring 기초_2주차

▶ 프레임워크애플리케이션을 개발할 때 전체적인 구조(frame)를 잡기 위해 사용하는 것기본적으로 프레임워크 내에서 사용하는 라이브러리들이 존재한다. ▶ 라이브러리개발을 진행하는 과정에서 필요한 기능을 구현하기 위해 사용하는 것 ▶ Annotation주석은 사람에게 정보를 제공하는 것이라면, 어노테이션은 특정 코드를 사용하는 프로그램에게 정보를 전달하는 것이다.어노테이션은 @ 기호로 시작하며, 클래스, 메서드, 변수, 매개변수, 패키지 등에 추가할 수 있다. ▶ Web Application 이라는 라면을 끓일 때(만들 때) 조리 도구 세트를 사용한다.라면 : Java냄비 : Spring Framework(Java Application Framework로 엔터프라이즈 애플리케이션 개발에 주로 사용된다.)조..

개발/부트캠프 2025.01.22

본캠프 : Spring 기초_1주차

❓ 네트워크 지식이 왜 필요한가요?우리는 사용자가 요청을 했을 때 해당 요청에 대한 응답을 수행하는 프로그램 즉, 서버를 개발하게 됩니다.사용자의 요청에서 시작하여 우리가 만든 서버에 도착하고 다시 사용자에게 응답이 되돌아가는 흐름을 잘 파악하고 있다면 서버 개발에 큰 도움이 됩니다.인터넷 브라우저(클라이언트)와 서버가 데이터를 주고받는 통신 방법인 HTTP(HyperText Transfer Protocol)는 결국, Web 기반에서 동작하기 때문에 네트워크에 대한 지식은 필수입니다.▶ 프로토콜(Protocol)이란? 복잡한 인터넷 세상에서 컴퓨터와 컴퓨터끼리 데이터를 주고받기 위하여 정한 통신규약.-Java 백엔드 웹 개발자라면 대부분 IntelliJ 혹은 Eclipse를 사용합니다. IntelliJ는..

개발/부트캠프 2025.01.20

본캠프 : 개인 과제(키오스크 만들기) 트러블 슈팅

1. 개요키오스크 만들기 과제(Lv.4)를 진행하며, 겪은 이슈를 다뤄보겠습니다. 2. 트러블 슈팅● 배경 Kiosk 클래스의 start 함수에 예외 처리가 안된 부분을 발견했습니다. ● 발단 예외 처리가 되지 않아서 정해진 값 외의 숫자 또는 문자가 입력되었을 때 프로그램이 종료되었습니다. ● 전개 계산기 과제 때 구현하지 못한 try catch문을 시도했으나 아래 코드에서 오류가 발생했습니다. 원인은 finally 때문이었습니다. finally는 예외의 발생 여부와 상관없이 무조건 실행되는 코드가 들어가는 블럭이어서 정확한 값이 입력이 되어도 다시 continue가 되었습니다. ● 위기 finally를 삭제하였는데 catch에서 아래와 같이 위 내용이 멈추지 않고 계속 반복되었습니다. ● 절정 원인은..

개발/부트캠프 2025.01.20