2026/02/20 14

Day 38 (12/10) – Spring 페이징 처리 및 동적 쿼리

🍃 Spring: 페이징 처리 및 동적 쿼리데이터가 많아질수록 서버 부하를 줄이기 위해 데이터를 쪼개서 가져오는 페이징(Pagination)과 검색 조건에 따라 SQL이 변하는 동적 쿼리가 핵심1. 페이징 처리 (Paging)Criteria: 페이지 번호(pageNum)와 한 페이지당 보여줄 개수(amount)를 전달하는 객체PageDTO: 화면에 페이지 번호(1~10)를 출력하기 위해 시작 번호, 끝 번호, 이전/다음 버튼 유무 등을 계산하는 객체2. 주요 어노테이션 정리어노테이션용도설명@RequestMapping클래스 레벨 매핑컨트롤러 전체의 기본 URL 경로 설정@PathVariable경로 변수/board/10 처럼 URL 경로에 포함된 값 추출@RequestParam쿼리 파라미터?id=seren..

Day 37 (12/9) – React 핵심 기초 문법

⚛️ React 핵심 기초 문법리액트 개발의 근간이 되는 현대 자바스크립트 문법 요약변수와 상수:const: 재할당이 불가능한 상수. 컴포넌트나 함수 정의 시 주로 사용let: 재할당이 가능한 변수. 값이 변해야 하는 로직에 사용화살표 함수 (=>): 익명 함수를 간결하게 표현하는 ES6 문법. 리액트 컴포넌트 선언 시 표준으로 사용스프레드 연산자 (...): 배열이나 객체의 요소를 개별적으로 펼치는 기법. 불변성을 유지하며 상태(State)를 업데이트할 때 필수적임🧱 React 3대 핵심 개념리액트를 지탱하는 가장 중요한 구조적 개념컴포넌트(Component): UI를 구성하는 독립적이고 재사용 가능한 최소 단위. '레고 블록'에 비유됨State(상태): 컴포넌트 내부에서 관리되는 '기억'. 값이 변..

Day 36 (12/8) – 스프링 레거시 CRUD 실습: Todo 프로젝트 및 테스트 전략

1. Spring CRUD 프로젝트 표준 진행 순서현업 실무에서 권장하는 데이터베이스 중심의 개발 흐름입니다.MySQL 테이블 생성: 요구사항에 맞는 스키마 설계 (simple_todo)DTO/VO 클래스 설계: 데이터 이동을 위한 객체 작성 (Lombok 활용)Mapper 인터페이스 & XML 작성: SQL 쿼리와 자바 메서드 매핑단계별 테스트 수행: 단위 테스트 → 통합 테스트로 검증 확장Service 계층 구현: 비즈니스 로직 작성Controller & View 연동: 사용자 요청 처리 및 화면 구성2. 데이터 모델 및 매퍼 설계🗄️ MySQL 테이블 구조 (simple_todo)CREATE TABLE simple_todo ( id INT AUTO_INCREMENT PRIMARY KEY, ..

Day 35 (12/5) – Apache Maven 표준 디렉터리 구조

🏗️ Apache Maven 표준 디렉터리 구조Maven은 프로젝트의 일관성을 위해 정해진 폴더 구조를 따름디렉터리 이름용도 및 목적프로젝트 홈pom.xml 파일 및 모든 하위 디렉터리 포함src/main/java프로젝트의 실제 자바 소스 코드 (.java)src/main/resources설정 파일, 프로퍼티 파일 등 실행 시 필요한 리소스src/test/javaJUnit, TestNG 등 단위 테스트를 위한 자바 소스 코드src/test/resources테스트 실행 시에만 필요한 리소스 파일🎨 Front-end: Bootstrap & JSP 연동1. Bootstrap 및 레이아웃 설정CDN 도입: 별도 설치 없이 태그로 Bootstrap 5.3 활용레이아웃 분리: header.jsp, footer..

Day 34 (12/4) – Spring Legacy: 웹 애플리케이션 개발 (Part 2)

🏗️ Spring Legacy: 웹 애플리케이션 개발 (Part 2)1. 웹 계층 구조 및 구동 흐름Spring 6 레거시 프로젝트는 여러 설정 파일이 유기적으로 연결되어 구동됨. 각 설정 파일의 역할과 빈(Bean) 관리 범위를 이해하는 것이 핵심임.web.xml: 웹 애플리케이션의 시작점. ContextLoaderListener와 DispatcherServlet 설정 포함.root-context.xml: 비즈니스 로직(Service), 데이터베이스 관련(Mapper, DataSource) 등 공통 빈을 설정하는 곳.servlet-context.xml: 웹 요청 처리와 관련된 빈(Controller, ViewResolver, 정적 리소스 경로)을 설정하는 곳.흐름: web.xml → root-cont..

Day 33 (12/3) – Spring Web MVC 컨트롤러 활용 및 MyBatis 연동 실습

1. Spring MVC 컨트롤러 메서드 반환 타입컨트롤러에서 요청을 처리한 후 응답을 보내는 방식에 따른 세 가지 주요 반환 타입 정리void: 요청 URL을 기반으로 JSP 파일을 자동 매핑함 (예: /board/list 요청 시 list.jsp 호출)String: 리턴값으로 논리적인 뷰 이름을 지정하여 ViewResolver가 해당 경로의 JSP를 호출하는 방식redirect: 특정 URL을 다시 호출하도록 브라우저에 명령함 (JSP 파일로 바로 가는 것이 아닌 URL 재요청)2. Model 데이터 전달 방식 비교 (PRG 패턴 핵심)데이터를 뷰로 넘길 때 사용 목적과 보안에 따라 addAttribute와 addFlashAttribute를 구분하여 사용함구분addAttributeaddFlashAtt..

Day 32 (12/2) – Spring Legacy 프로젝트 환경 구축 (Day 1)

최신 Spring 6 버전은 Jakarta EE 기반이므로 Tomcat 10 이상의 서버 환경이 필수임1. 개발 환경 및 서버 설정WAS: Apache Tomcat 10.1.49 설치 (Jakarta EE 10 지원)IDE 설정: Eclipse/STS에서 Server Runtime Environment 추가Lombok: IDE 설치 경로에 java -jar lombok.jar 명령어로 인스톨 필수프로젝트 생성: Dynamic Web Project 생성 후 Generate web.xml 체크 → Maven Project로 전환2. 의존성(Dependency) 및 DB 설정pom.xml 주요 의존성:Spring Framework 6.x 관련 라이브러리HikariCP (고성능 커넥션 풀)mysql-connec..

Day 31 (12/1) - Spring Boot 전환 및 React Router 동적 라우팅 실습

1. Spring Boot 프로젝트 환경 설정 (오전)Lombok 설치 및 STS 연동설치 경로: D:\Dev\lib 등의 경로에 lombok.jar 배치설정 방법: CMD에서 java -jar lombok.jar 실행 후 STS4 설치 경로 선택하여 설치목적: @Getter, @Setter, @ToString 등을 통해 반복적인 자바 코드(Boilerplate) 제거Spring Starter Project 생성 (Ver 3.5.8)Java Version: 21주요 의존성(Dependencies):Spring Web: 웹 개발을 위한 기본 라이브러리 (내장 톰캣 포함)Spring Boot DevTools: 코드 수정 시 자동 리로딩 지원Lombok: 어노테이션 기반 코드 자동 생성MySQL Driver:..

Day 30 (11/28) - [React] Todo 앱 만들기 핵심 요약 및 트러블슈팅

학습 목표: React Todo 앱 실습을 통한 JSX 문법, 조건부 렌더링, 이벤트 핸들링 및 실무 패턴 습득1. React JSX 괄호 구분 가이드JSX에서 중괄호 {}와 소괄호 ()는 명확한 용도 차이가 있습니다.중괄호 {} : JavaScript 표현식 삽입내부 텍스트: 변수나 로직 삽입 시 사용 ({name})배열 렌더링: {todos.map(todo => {todo.text})}속성 값: value={content}인라인 스타일 (객체 전달): style={{ color: 'red' }}특수문자 출력: > 기호 등은 {'>'} 또는 {'}'} 처럼 문자열로 감싸서 처리소괄호 () : 긴 JSX 반환 시 가독성 확보여러 줄의 JSX를 반환할 때 하나의 묶음으로 처리하여 가독성을 높임화살표 함수에..

Day 29 (11/27) - 파이썬 기초 문법 및 리액트 라이프사이클

🐍 Python 기초 문법 및 자료형1. 주요 연산자 및 함수divmod(a, b): 몫과 나머지를 튜플 형태로 동시에 반환 (예: divmod(10, 3) → (3, 1))**: 거듭제곱 연산자 (예: 2**3 → 8)def: 함수 정의 키워드 (형식: def 함수명(매개변수): return 결과값)type(): 객체의 자료형 확인2. 자료형 분류 및 특징기본 자료형: 숫자형(int, float), 문자열(str), 논리형(bool)컨테이너 자료형 (Collection)list: 순서가 있고 수정 가능한 요소의 모음 ([])tuple: 순서가 있으나 수정 및 삭제가 불가능한 읽기 전용 모음 (())dict: 키(Key)와 값(Value)의 쌍으로 이루어진 순서 없는 모음 ({})set: 중복을 허용하..