일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 알고리즘
- 스프링
- JPA
- 자바
- pandas
- 다익스트라
- spring security
- 비트마스크
- java
- 세그먼트 트리
- dfs
- 포트앤어댑터 아키텍처
- springboot
- docker
- 데이터 flow
- dataframe
- UML
- 백준
- equals
- 이펙티브 자바
- 파이썬
- Redis
- disjoint set
- DP
- 위상정렬
- ddd
- 헥사고날 아키텍처
- 문자열
- series
- Today
- Total
목록전체 글 (95)
코딩못하는사람
1.발단 프로젝트를 진행하다보면 생각보다 많은 DTO가 필요했다. 대부분의 DTO에는 롬복의 @Data 어노테이션으로 설정을 해주고 @AllArgsConstructor를 붙혀주었다. 하지만 이러한 DTO들을 활용해서 Controller를 POSTMAN으로 테스트할때 잦은 에러가 나타났다. 여러 코드를 살펴보니 DTO에 @AllArgsConstructor,@NoArgsConstructor 두개다 붙어있는 것을 발견했다. 두개의 정의는 다음과 같다. @AllArgsConstructor - 모든 필드 값을 파라미터로 받는 생성자를 만들어준다. @NoArgsConstructor - 파라미터가 없는 기본 생성자를 생성해준다. 그런데 나는 분명히 전체 모든 필드를받는 생성자를 사용했는데 왜 에러가 날까 코드를 보다..
Spring Data JPA란? 스프링에서 JPA를 쉽게 사용할 수 있도록 지원해주는 모듈이다. CRUD 쿼리를 짜려면 하나의 도메인마다 반복되는 코드를 JPQL로 짜주어야했다. 하지만 Spring Data JPA를 의존성으로 주입받아 사용하게 된다면 우리가 일반적으로 사용하는 모든 메서드(쿼리)를 직접 작성하지 않아도 인터페이스만 만들어 놓는다면 대신 만들어준다. 인터페이스에서 공통으로 제공되는 메서드의 예시는 count, delete, deleteAll, deleteAll, deleteById, existsById, findById, findAll,save ..등이 있다. Spring Data JPA의 동작과정을 보자. Spring Data JPA가 JpaRepository를 확장한 Repositor..
Gradle 이란? 그래들(이하 Gradle)은 그루비(Groovy)를 기반으로 한 빌드 도구. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구. 처음 SpringBoot로 프로젝트를 만든다면 프로젝트에 필요한 의존성들을 체크하고 Build Tool을 고르게 되면 프로젝트에 의존성 주입이 완료된다. 이렇게 의존성을 주입받아 프로젝트를 진행하다가 필요한 라이브러리를 검색하다 보니 크게 두가지 형태로 나누어져있는 것을 보고 차이점이 궁금했다. Compile VS implementation compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.14.1' implem..
TDD (Test-Driven Development)란? 이름에서 알 수 있듯이 테스트가 주도하는 개발이라는 뜻이다. 종료조건을 테스트 코드로 미리 정하고 그에 맞춰서 테스트를 통과시키기 위해 개발해 나간다고 생각하면 이해하기 쉽다. 항상 실패하는 테스트를 먼저 작성한다(RED) 테스트가 통과하는 프로덕션 코드를 작성한다(GREEN) 테스트가 통과하면 프로덕션 코드를 리팩토링한다. 위 3단계를 반복하며 점진적으로 개발을 완료시킨다. 프로덕션 코드-프로젝트의 로직을 포함하고 제품(어플리케이션)에서 실행되는 시스템의 부분을 가리킨다 단위 테스트(Unit Test)란? TDD의 첫 단계인 기능 단위의 테스트 코드를 작성하는 것이다. TDD를 하는 것이 아닌 순수하게 테스트 코드를 작성하는 것을 의미한다. 왜 ..