일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 기록으로 실력을 쌓자
- CKA
- tucker의 go 언어 프로그래밍
- kotlin querydsl
- 티스토리챌린지
- 바이브코딩
- CloudWatch
- AWS EKS
- APM
- 공부
- 정보처리기사 실기 기출문제
- AI
- golang
- Linux
- Kubernetes
- 컨텍스트 엔지니어링
- SRE
- aws
- Pinpoint
- minikube
- Java
- kotlin
- 오블완
- Spring
- 코틀린 코루틴의 정석
- kotlin coroutine
- go
- PETERICA
- CKA 기출문제
- MySQL
- Today
- Total
목록Programming/Spring (61)
피터의 개발이야기

ㅁ 들어가며ㅇ Gradle 프로젝트를 빌드할 때 테스트를 실행하지 않고 싶은 경우가 있다. ㅇ [Spring] JUnit5 조건부 테스트 실행방법에서는 OS, JAVA 버젼, Property, 환경변수에 다른 테스트 진행 방법을 알아보았다.ㅇ 이번 글에서는 빌드 시 테스트 전체를 스킵하는 방법을 정리하였다.ㅇ 이는 빌드 시간을 단축하거나 특정 상황에서 테스트를 임시로 건너뛰고 싶을 때 유용하다. ㅁ Gradle 명령어gradle build --exclude-task test// Gradle 5 이상// -x 옵션은 특정 태스크를 실행하지 않도록 gradle build -x test ㅁ build.gradle 테스트 스킵 설정// 모든 테스트 스킵test { exclude '**/*'}// 특정..

ㅁ 들어가며ㅇ QueryDSL을 사용하다 보면 fetchFirst()와 fetchOne() 메서드를 자주 마주치게 된다. ㅇ 이 두 메서드는 비슷해 보이지만 중요한 차이점이 있다. ㅇ 오늘은 이 두 메서드의 차이점을 정리하였다. ㅁ fetchFirst()ㅇ fetchFirst() 메서드는 쿼리 결과에서 첫 번째 결과만을 반환한다.ㅇ 주요 특징 - 항상 단일 결과를 반환한다. - 결과가 없으면 null을 반환한다. - 여러 결과가 있어도 예외를 발생시키지 않고 첫 번째 결과만 반환한다. - 내부적으로 LIMIT 1을 사용하여 데이터베이스에서 하나의 결과만 가져온다. ㅁ fetchOne()ㅇ fetchOne() 메서드는 쿼리 결과가 정확히 하나일 때 사용한다. ㅇ 주요 특징 - 결과가 정확히 하나일 때만 해..

ㅁ 개요ㅇ 테스트를 진행 시 특정 조건에 맞추어 테스트를 실행해야 할 때가 있다. ㅇ 예를 들어, 환경 변수, properties 설정 값, OS, JRE 버전 등에 따라 테스트를 실행할 필요가 있다.ㅇ JUnit5는 이러한 조건에 맞춰 테스트를 실행할 수 있는 다양한 방법을 제공한다. ㅇ 이번 글에서는 JUnit5의 조건에 따라 테스트를 실행하는 방법을 정리하였다.ㅁ EnabledOnOs // OsConditionTest @Test @EnabledOnOs(OS.WINDOWS) fun test1() { println("enabled on windows") } @Test @EnabledOnOs(OS.MAC, OS.LINUX) fun test2() { ..

ㅁ 들어가며ㅇ Spring의 테스트 시 자동으로 Rollback 되는 방법을 정리하였다. ㅁ Transactional 어노테이션ㅇ 테스트 클래스나 테스트 메서드에 @Transactional 어노테이션을 추가한다.ㅇ 이 어노테이션은 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후 자동으로 롤백을 수행한다.ㅇ 이렇게 하면 각 테스트가 독립적으로 실행되며, 이전 테스트의 데이터가 다음 테스트에 영향을 주지 않는다. ㅁ Rollback 어노테이션 사용ㅇ 기본적으로 @Transactional이 적용된 테스트는 롤백되지만, 명시적으로 @Rollback 어노테이션을 사용할 수 있다.ㅇ @Rollback(true)로 설정하면 테스트 후 롤백이 수행되고, @Rollback(false)로 설정하면 롤백이 수행되지 ..

ㅁ 들어가며ㅇ [Spring] JDBC와 MyBatis와 JPA 비교, 시대적 흐름에서 장단점 분석에서 JDBC, MyBatis, JPA의 시대적 흐름에 따른 장단점을 정리하였다.ㅇ JPA의 장단점을 요약적으로 정리하고 fetch Join이 왜 필요한지 정리해 보았다.ㅇ 우선 JPA의 장점을 정리하였다. ㅁ JPA (Java Persistence API) 의 장점ㅇ 객체와 데이터베이스 테이블을 자동으로 매핑ㅇ 객체 지향적인 방식으로 데이터 관리 가능ㅇ 코드 작성량이 적고 유지보수가 용이함 ㅁ JPA의 단점ㅇ 성능이슈: JDBC가 JPA보다 약 2배 정도 빠름ㅇ 학습 난이도: JPA와 ORM를 잘 다루기 위해서는 초반 학습이 필요함ㅇ 특정 데이터베이스의 기능 활용 제한 ㄴ 프로시저, 특정 쿼리 힌트나 최..

ㅁ 들어가며ㅇ 코틀린 프로젝트에서 개발 중에 KtLint를 알게 되었다.ㅇ 에전에 React 개발 시 빌드할 때에 eslint를 사용한 적이 있다.ㅇ 이와 비슷하게 백엔드에도 코드의 스타일 문제를 검사하는 정적 분석 도구인 KtLint이다.ㅇ 깔끔한 포맷팅을 위한 ktlint 적용하기 (feat. kotlin)을 인용하여 공부한 내용을 정리하였다. ㅁ Ktlint란?ㅇ KtLint는 Kotlin 언어의 공식 코드 컨벤션을 준수하도록 코드 스타일을 검사하고 문제점을 맞춰주는 정적 분석 도구이다. ㅁ 주요 기능ㅇ Kotlin 공식 Code Convention을 기반으로 코드 스타일을 검사한다.ㅇ 대표적 사용방법 ㄴ brew로 설치하여 CLI에서 스타일 검사 ㄴ Gradle을 통해 빌드 과정에서 검사 ㄴ Gi..

ㅁ 들어가며ㅇ SOAP과 REST 비교에 대한 글을 작성하였다.ㅇ Restful는 웹 서비스와 모바일 애플리케이션 경량화의 필요에 맞춘 아키텍처 원칙 세트이다.ㅇ 기존에 업데이트를 위한 PUT 메서드만 알고 있었는데, 더욱 경량화된 PATCH메서드를 알게 되었다.ㅇ PATCH와 PUT의 차이점을 알아보고 멱등성의 보장 여부에 대해서 정리하였다. ㅁ REST API에서 PATCH와 PUT의 차이점ㅇ REST API에서 자원을 업데이트할 때 사용하는 두 가지 일반적인 HTTP 메서드는 PATCH와 PUT가 있다. ㅇ 두 메서드 모두 기존 자원을 변경하는 데 사용되지만, 변경 범위와 방식에 있어 중요한 차이점을 가지고 있다. ㅁ PUT 변경 범위ㅇ PUT 메서드는 전체 자원을 수정한다.ㅇ 요청 시 전달된 모든..

ㅁ 들어가며ㅇ JPA와 MyBatis는 Spring에서 인기있는 프레임워크이다.ㅇ 이 프레임워크들의 장단점을 이해하기 위해, 근간이 되는 JDBC를 이해해야 한다.ㅇ 개인적으로 JDBC와 MyBatis, JPA를 사용하면서 시대적 상황에 따라 두 프레임워크의 장단점을 정리해 보았다.ㅇ 참고로 11년차 개발자인 나는 JSP+JDBC, Spring + JDBC, Spring + iBatis, Spring + Mybatis, Springboot + JPA의 경험을 가지고 있다. ㅁ JSP에서 JDBC로 SQL을 구현ㅇ JDBC(Java Database Connectivity)는 Java에서 데이터베이스와 연결하고 상호 작용하는 데 사용하는 표준 API이다.ㅇ JSP에서 JDBC를 이용해여 데이터를 조회하였는데..

ㅁ 들어가며 지인과 대화 중 TDD의 어려움에 대해서 질문을 드렸다. 테스트 케이스 중에 제일 어려운게 Insert문이다. H2DB를 이용해 메모리상에 기능을 구현할 수 있는 방법도 있지만 한계가 있었다. Testcontainer는 이런 한계를 넘어 운영과도 똑같은 테스트환경에서 테스트를 가능하게 된다. 더욱이 코드상으로 구현하면 알아서 환경을 만들어 준다. 도저히 잠이 안와서 빠르게 테스트 환경만 구성해 보려고 한다. 현재 시간 00시 30분이다. ㅁ 통합 테스트 환경 유지의 어려움 [DevOps] Kube환경 Node, Redis, RDS 성능 업그레이드 작업 정리, 이 글은 검수기 테스트 환경을 구축하기 위해 AWS 환경을 증설하는 과정을 정리하였다. 통합 테스트 환경을 유지하는 데는 비용적 어려움..

ㅁ 개요 ㅇ Hateoas가 무엇인지 정의해 보고 Spring Boot REST API CRUD with HATEOAS Tutorial에 따라 Maven 프로젝트를 구성해 보았습니다. ㅁ Hateoas란 HATEOAS(Hypermedia As The Engine of Application State)는 웹 API를 실제로 "RESTful"로 만드는 REST 애플리케이션 아키텍처의 제약 조건입니다. 기본적으로 요청에 대해 서버는 데이터만 클라이언트에 보냅니다. HATEOAS를 사용하면 응답에 데이터뿐만 아니라 해당 데이터와 관련된 가능한 작업도 링크 형식으로 포함됩니다. 즉, 클라이언트가 특정 리소스를 요청하면, 서버는 단순히 데이터만 주는 것이 아니라 해당 리소스와 관련된 추가적인 행동(예: 다음 페이지..