분류 전체보기(55)
-
99클럽 22일차 TIL: KISS, YAGNI, DRY
#1. 오늘의 학습 키워드소프트웨어 개발 3대원칙 KISS, YAGNI, DRY에 대해저번 포스트에서 객체지향 설계 5대 원칙인 SOLID 원칙을 알아보았다.https://second-brain.tistory.com/38이번엔 추가적으로 전체를 아우르는 소프트웨어 개발 3대 원칙에 대해 알아보자#2. 공부한 내용1. KISS- Keep It Simple Stupid- Keep It Short and Simple- Keep It Small and Simple위 phrase 들의 약어다.즉 소프트웨어 설계 시 최대한 간단하고 짧게 구현하라는 뜻이다.소스 코드가 될 수도 있고, 설계 구조가 될 수도 있다.요건만 만족한다면, 굳이 불필요하게 복잡하게 설계를 할 필요가 없다.복잡할 수록 생산성은 낮아지고, 유지보..
2024.04.25 -
99클럽 21일차 TIL: Validation Group
#1. 오늘의 학습 키워드자바 스프링 부트에서 Validation을 특정 Group에 대해서만 걸어주고 싶을 때자바 스프링 부트에서 개발을 진행할 때, 만약 같은 DTO로 여러 API 를 대응했을 때, validation 의 규칙을 다르게 해야하면 어떻게 해야될까전에 Loki 서버로 에러 로그를 전송해주는 LokiUtil 컴포넌트를 개발하였다.해당 메서드로 프론트의 로그도 같이 전송해주려 API 를 개발하였는데,이때 API는 아래의 두 종류가 되고, 두 API는 기본적으로 로그 형식은 같기에, DTO는 하나를 공유하고 있다프론트의 에러 로그 전송 API프론트의 화면 방문 추적 로그 전송 API#2. 공부한 내용@NotBlank해당 어노테이션은 Dto의 속성에 공백..
2024.04.24 -
99클럽 20일차 TIL: SOLID
#1. 오늘의 학습 키워드 개발원칙 SOLID 에 대해서 자바 스프링 부트로 개발을 하기 시작하면서, 여러 기술을 접하면서, 객체 지향 프로그래밍은 이런 것이구나, 를 간접적으로 느꼈다. 그러면 객체지향 프로그래밍의 5가지 설계원칙, SOLID 에 대해서도 알아보자 #2. 공부한 내용 SOLID 객체지향 프로그래밍을 하면서 지켜야하는 5대 원칙 5개의 원칙은 아래와 같다 SRP (단일 책임 원칙) OCP (개방 - 폐쇄 원칙) LSP (리스코프 원칙) ISP (인터페이스 원칙) DIP (의존 역전 원칙) 1. SRP (Single Responsibility Principle) 단일 책임 원칙 단일의 모듈은 단일의 책임을 갖는다는 원칙 특정 모듈을 수정할 때, 해당 모듈을 수정하는 이유는 하나여야된다는 의..
2024.04.23 -
99클럽 19일차 TIL: WebSocket
#1. 오늘의 학습 키워드 자바 Spring 에서의 WebSocket 에 대해서 저번 post 에서 HTTP 2 방식으로 통신을 하여 양방향 통신을 지원하는 gRPC 에 대해서 알아보았다. 또한 채팅 등 실시간 서비스에 적합한 Spring Webflux 에 대해서 알아보았다. 이 두 가지의 특징을 살펴보면, 익숙한 또 다른 기술이 떠오른다 WebSocket #2. 공부한 내용 WebSocket 웹 소켓 웹 소캣은 서버와 클라이언트 사이의 인터액티브 통신 세션을 설정하여 언제든 양방향 통신 및 데이터 전송을 가능하케 하는 기술이다 보통 채팅, 증권 거래, sns 등 서비스에서 많이 쓰이고 있다. 채팅 서비스를 구현 할 때 기존 rest API 방식을 사용하게 되면, 클라이언트에서 매번 서버로 HTTP 통신..
2024.04.22 -
99클럽 18일차 TIL: gRPC
#1. 오늘의 학습 키워드 자바 Spring Boot에서의 gRPC 에 대해서 MSA 구조에서 service 간 통신에서 REST API 를 쓸 수도 있지만 gRPC 를 쓸 수도 있다. Spring Boot 에서 이미 gRPC 를 지원해주는 라이브러리가 존재하기 때문. 일반적으로 REST API 는 단일 request 단일 response 이기 때문에, 여러 response 반환을 원할 경우, 그만큼의 request 를 보내야 해서 네트워크 통신 비용이 많이 소모된다. 그래서 gRPC 가 성능적인 관점에서 REST API 를 사용하다 좋은 대체제로 대두된다. #2. 공부한 내용 gRPC google, Remote Procedure Calls 구글에서 개발한 원격 프로세저 호출을 위한 시스템. REST 처..
2024.04.21 -
99클럽 17일차 TIL: Spring Webflux: Mono, Flux
#1. 오늘의 학습 키워드 Reactive Streams의 4가지 Interface 및 Spring Webflux 의 반응형 타입 Mono 와 Flux 에 대해서 저번 post 에서 Spring WebFlux 의 개념적인 부분을 다뤘다. 다시 정리를 해보면, Spring Webflux 는 Non-Blocking, 비동기적 i/o 방식을 지원하여 높은 확장성과 성능을 자랑하는 반응형 웹 프레임워크이다. 반응형 프로그래밍, Reactive Streams 과 Reactor에 대한 개념도 다뤘었는데, 그 중 Reactive Streams의 interface 4가지와, 또 그 중 Publisher 에 해당하는 Mono와 Flux에 대해서, 좀 더 디테일하게 알아보자. #2. 공부한 내용 Reactive Strea..
2024.04.20