일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공부
- minikube
- AI
- CloudWatch
- Spring
- mysql 튜닝
- AWS EKS
- IntelliJ
- Java
- PETERICA
- CKA
- Kubernetes
- 코틀린 코루틴의 정석
- CKA 기출문제
- 오블완
- Pinpoint
- kotlin
- kotlin querydsl
- 정보처리기사실기 기출문제
- 티스토리챌린지
- MySQL
- kotlin coroutine
- Elasticsearch
- 정보처리기사 실기
- 정보처리기사 실기 기출문제
- 기록으로 실력을 쌓자
- APM
- aws
- Linux
- kotlin spring
- Today
- Total
목록Programming/Spring (57)
피터의 개발이야기
ㅁ 들어가며ㅇ [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를 사용하면 응답에 데이터뿐만 아니라 해당 데이터와 관련된 가능한 작업도 링크 형식으로 포함됩니다. ㅁ Leonard Richardson이 제시한 REST 성숙도 모델 이 모델은 아래에 설명된 대로 네 가지 수준으로 구성됩니다. 이 모델..
ㅁ 개요 Spring Cloud Gateway 로그 상에서 308 PERMANENT_REDIRECT 상태 코드가 지속적으로 발견되었다. 이를 모니터링하고 원인을 분석하는 과정을 정리하였다. ㅁ Http status Code Http Status Code는 크게 다섯 가지 HTTP 상태 코드 범주(또는 클래스)가 있다. 각각은 서버에서 브라우저로의 다른 응답을 나타낸다. 1XX — 정보 코드 : 서버가 요청을 확인하고 처리 중이다. 2XX — 성공 코드 : 서버가 요청을 성공적으로 수신, 처리하였다. 3XX — 리디렉션 코드 : 서버가 요청을 받았지만 다른 곳으로 리디렉션된다. 4XX — 클라이언트 오류 코드 : 서버가 페이지 또는 웹사이트를 찾을 수 없거나 연결할 수 없다. 이것은 사이트 측의 오류이다...
@Valid 벨리데이션 체크가 필요한 Dto에 @Valid 어노테이션을 붙인다. @ 중첩된 Dto validation 벨리데이션 체크가 필요한 dto 안에 중첩되는 dto가 있는 경우 다시 @Valid 어노테이션을 선언할 수 있다. @Schema(description = "벨리데이션 1단계 DTO") public class ValidationDepth1Dto { @NotNull(message = "Null만 체크하고 빈값을 체크하지 않는다.") private String nullChkStr; @NotEmpty(message = "Null, \"\"만 체크하고 공백은 체크하지 않는다.") private String emptyChkStr; @NotBlank(message = "Null, \"\", 공백을 포..
ㅁ 들어가며Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. - 에러에 대한 조치 과정을 정리하였다. ㅁ 에러 내용[admin] [restartedMain] [2023-04-21 11:46:32:7022] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system..
ㅁ 개요 ㅇ 시스템 로그 점검 시 로그 저장 시 파일 시스템에 문제가 발생하였다. ㅁ 에러 내용 2022-12-07 10:16:20,753 I/O dispatcher 435 ERROR An exception occurred processing Appender error_file org.apache.logging.log4j.core.appender.AppenderLoggingException: Error writing to stream efs/logs/ts/error/gw-ts.log at org.apache.logging.log4j.core.Logger.log(Logger.java:161) at org.springframework.util.concurrent.ListenableFutureAdapter$1..