| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- MySQL
- cs
- mysql 표
- 맥
- Less
- mysql 표 출력
- zsh
- 데이크스트라
- 네트워킹데이
- mycli
- VI
- 이진탐색
- 욕심쟁이 방법
- 오블완
- oh-my-zsh
- 순차탐색
- 스터디2기
- 터미널
- 티스토리챌린지
- 인프런워밍업클럽
- 분할정복 방법
- zsh theme
- 오일러 경로
- table status
- CS스터디
- Pager
- 알고리즘
- 인프런
- spring boot
- 동적 프로그래밍 방법
- Today
- Total
목록분류 전체보기 (97)
Develop
안녕하세요 .ᐟ오늘은 Spring Boot 프로젝트에서 통합 테스트를 작성하는 방법을 정리합니다.어제 작성한 단위 테스트와 달리, 통합 테스트는 실제 Spring 컨테이너를 띄워서 여러 레이어가 함께 잘 동작하는지 검증하는 테스트입니다. MockMvc를 활용해 HTTP 요청을 시뮬레이션하고, Fixture 패턴으로 테스트 데이터를 관리하는 방법을 배웠습니다~단위 테스트 vs 통합 테스트범위개별 메서드 (Service 레이어)여러 컴포넌트 (Controller → Service → Repository)Spring 컨테이너❌ 사용 안함✅ 실제로 띄움DBMock 객체실제 DB (H2)속도빠름 (0.1초)느림 (2-3초)목적비즈니스 로직 검증API 전체 플로우 검증 테스트 환경 구성1. 의존성 추가depende..
안녕하세요 .ᐟ 오늘은 Spring Boot 프로젝트에서 단위 테스트를 작성하는 방법을 정리합니다. JUnit 5와 Mockito를 활용해 Service 레이어의 비즈니스 로직을 테스트했고, given-when-then 패턴을 적용해 가독성 높은 테스트 코드를 작성해봤습니다~ 단위 테스트란?단위 테스트는 애플리케이션의 가장 작은 단위를 독립적으로 검증하는 테스트입니다.Spring Boot에서는 주로 Service 레이어의 메서드를 테스트합니다. 테스트 종류구분범위특징단위 테스트개별 메서드Mock 사용, 빠른 실행통합 테스트여러 컴포넌트실제 DB 연동E2E 테스트전체 시스템실제 사용자 시나리오 테스트 환경 구성build.gradledependencies { testImplementatio..
안녕하세요 .ᐟ게시판 프로젝트 5일차입니다. 오늘은 사용자 입력값을 검증하는 Validation을 구현했습니다. 오늘의 학습 목표Validation이 필요한 이유@Valid와 Bean Validation 어노테이션DTO에 검증 로직 적용검증 실패 시 에러 응답 처리 Validation을 왜 해야 할까?// 기존 코드 - 검증 없음@PostMappingpublic ResponseEntity createPost(@RequestBody PostCreateRequest request) { return ResponseEntity.ok(postService.createPost(request, userId));} 1. 잘못된 데이터가 서비스 레이어까지 도달함- 빈 문자열, null 값이 그대로 DB에 저장..
안녕하세요 .ᐟ게시판 프로젝트 4일차 입니다. 오늘은 API의 안정성을 높이는 전역 예외 처리를 구현했습니다. 오늘의 학습 목표예외 처리가 필요한 이유@RestControllerAdvice와 @ExceptionHandlerCustom Exception 설계통일된 에러 응답 구현 예외 처리를 왜 해야 할까?기존 코드의 문제점을 살펴봅시다.// 기존 코드public User findById(Long userId) { return userRepository.findById(userId) .orElseThrow(() -> new EntityNotFoundException("User not found"));} 문제점HTTP 상태 코드가 부적절함EntityNotFoundException이 발생하..
안녕하세요 .ᐟ게시판 프로젝트 3일차 입니다. (작심삼일도 여러번하면 결국엔 꾸준히 할 수 있습니다 화이팅) 오늘도 게시판의 핵심기능인 댓글과 대댓글을 구현했습니다. 오늘의 학습 목표Comment Entity 설계댓글 CRUD API 구현대댓글 계층 구조 구현 Entity 설계연관관계 매핑Comment는 세 가지 연관관계를 가집니다.Comment → Post: @ManyToOne으로 게시글과 연결Comment → User: @ManyToOne으로 작성자와 연결 Comment → Comment: Self-Referencing으로 부모-자식 관계 구현 Self-Referencing 구조대댓글 구조를 위해 같은 테이블의 다른 레코드를 참조합니다.@ManyToOne(fetch = FetchType.LA..
안녕하세요 .ᐟ오늘은 게시판 프로젝트의 핵심인 Post API 를 구현했습니다. 주요 학습 내용- 연관관계 매핑 (@ManyToOne) - 페이징 처리 (Pageable, Page) - DataInitializer를 통한 초기 데이터 자동 생성 - IntelliJ HTTP Client 활용 요구사항Post (게시글)제목, 내용, 조회수작성자와 연관관계카테고리와 연관관계CRUD페이징처리Category (카테고리)Enum (일단 NOTICE, FREE, QNA, TECH 정도만 만들었습니다.)DB에 잘못된 값이 들어가는 것을 컴파일 단계에서 방지할 수 있습니다.카테고리는 항상있어야되는데 매번 Insert 해주기가 번거로워서 알아보다가 DataInitializer 를 알게되어 바로 적용했습니다. Pos..
안녕하세요 .ᐟ앞으로 Spring Boot 를 활용한 게시판 프로젝트를 진행해보려 합니다 ~ 오늘은 환경설정부터 엔티티 설계, 회원관리 API 개발까지 진행했습니다.(몇달전에 살짝 작업하다가 다시 ...시작합니다ㅋㅋㅋ) 1. 프로젝트 환경 설정기술 스택Java 21Spring Boot 3.5.5MySQL 8.4.1Spring Data JPASpring SecurityLombok 2. Entity 설계BaseEntity - 공통 필드 추상화팀프로젝트 당시 BaseEntity를 이용해서 공통응답을 내려줬었는데, 아래와 같은 장점이 있어 이번에도 사용해보려 합니다.여러 Entity 에서 반복사용되는 필드를 한곳에 작성하고 상속받아 사용할 수 있다. (중복 관리)시간 필드들을 일관성있게 관리할 수 있다.Sof..
안녕하세요~ .ᐟ많이쓰는 문법이나, 제가 헷갈리는 문법 위주로 내용을 정의해보려고 합니다. 그 첫번째 순서는 바로 제네릭입니다 하하하아래처럼 제가 공부하고, 저만의 언어로 내용을 정리해보겠습니다 .ᐟ Generic(제네릭)정의사전 정의 : 일반적인, 범용적인클래스의 타입 결정을 미루는 것사용 방법클래스 정의 시클래스명 뒤에 (다이아몬드)를 쓰고, 그 안에 `타입 매개변수`를 대문자 T, E, K, V, N 로 작성한다.타입 매개변수 관례 : Type, Element, Key, Value, Numberpublic class GenericBox { private T value; public void set(T value) { this.value = value; } public T get..
리눅스의 디렉터리1. /proc 디렉터리시스템 및 시스템 자체에서 실행중인 프로세스에 대한 정보를 제공하는 가상 파일 시스템2. /lib 디렉터리라이브러리 파일들이 저장되는 디렉터리3. /dev 디렉터리장치 파일들이 저장되는 디렉터리로, 컴퓨터의 하드웨어와 연결된 장치들의 파일이 포함되어있다. (마우스나 키보드 등)시스템에서 사용되는 가상파일도 포함된다.일반 사용자는 /dev 디렉터리에 대한 접근권한이 없으며, 시스템관리자나 개발자 등의 특정 권한이 필요하다.4. /etc 디렉터리시스템 설정 파일이 저장되는 디렉터리이다.예를들어, 네트워크 설정, 사용자 계정정보, 패키지 관리자 설정, 서비스 설정등이 포함된다.일반적으로 /etc 파일들은 텍스트 파일 형식으로 작성되어있고, 대부분의 파일은 시스템관리자 권..
안녕하세요 .ᐟ 스프링부트를 사용하면서 Assert를 가끔 썼는데, 궁금해서 내용을 정리해봤습니다. Assert (어썰트)란?테스트 코드에서 기대하는 결과가 맞는지 확인하는 도구JUnit이나 AssertJ 같은 라이브러리에서 제공됨 왜 써야 할까?버그를 미리 잡을 수 있음리팩터링 후에도 동작 검증 가능코드 신뢰도와 유지보수성 향상 대표적인 Assert 종류assertNotNull(obj)객체가 null이 아니어야 테스트 통과예시: assertNotNull(user);assertEquals(expected, actual)예상 값과 실제 값이 같아야 테스트 통과예시: assertEquals(3, calculator.add(1, 2));assertTrue(condition)조건이 true여야 테스트 통과예..