Effective Java를 읽으며 정리한 내용입니다. Builder 패턴 Builder는 spring boot에서 @Builder 어노테이션으로 많이 사용했었다. 이번 글에서는 lombok에서 제공되는 어노테이션이 아닌 직접 빌더 패턴을 만들어 본다. 생성자에 매개변수가 많다면 빌더를 고려하라 - item2 점층적 생성자 패턴 ...
[Effective Java] 싱글턴과 빌더 패턴
SSAFY 8기 후기 및 취업 후기
2022.07 부터 2023.07까지의 회고를 담은 포스팅입니다. SSAFY 8기 시작 엘리스 AI 트랙 4기를 마치고 바로 SSAFY 8기를 합격해 1년간 교육을 받았다. SSAFY 8기 합격 후기 1학기 강의 교육과 2학기 프로젝트 수행으로 시간을 보냈다. SSAFY에서 Spring boot 기반의 백엔드는 처음 접했지만 재밌었다. 2...
REST API의 특징과 설계
API란 무엇인가 ? API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 응답을 사용하여 두 애플리케이...
spring boot profile 환경변수 분할 적용
환경에 따른 설정 파일 분할 적용? 팀 프로젝트를 진행하다보면 설정 파일에서 형상 관리를 하면서 충돌이 난다. 로컬에서 테스트하는 데이터베이스나 포트가 다른 경우 저장소에서 pull 받을 때마다 수정해줘야 하는 귀찮음이 있다. 귀찮음을 해소하면서 프로젝트의 환경을 개발, 운영, 로컬로 나눌 수 있는 설정파일 분할 적용에 대해 알아보자 ! spri...
Jenkins를 사용한 CI/CD with Docker
CI/CD Continuous Integration과 Continuous Delivery이다. 애플리케이션 개발 단계를 자동화하여 애플리케이션 개발을 보다 짧은 주기로 고객에게 제공하는 방법이다. 애플리케이션 통합, 테스트, 제공, 배포에 이르는 라이프사이클 전체에 걸쳐 지속적인 자동화와 모니터링을 제공한다. docker에 jenkins 컨테이너 ...
MYSQL event scheduler로 데이터 조작하기
Event Scheduler mysql의 event scheduler는 주기적으로 데이터베이스에 작업을 해야 할 경우 사용한다. 지속적으로 쌓이는 temporary 데이터가 있을 때 해당 테이블을 자주 비워줌으로써 용량 차지가 되지 않게끔 해야한다. 매번 개발자가 테이블을 비울 필요 없이 데이터베이스 자체에 어떤 이벤트를 걸어주고 주기적으로 반복되...
좋은 객체 지향 프로그래밍을 위한 방법: SOLID
클린 코드로 유명한 로버트 마틴의 SOLID 5가지 원칙을 알아보자 SRP(Single Responsibility Principle) 첫 번째는 단일 책임 원칙이다. 간단하게 말하면 하나의 클래스는 하나의 책임을 가져야 한다는 원칙이다. 하나의 책임이라는 말은 규모가 클 수도 있고 작을 수도 있다. 상황에 따라 다를 것이고, 중요한 기준은 “변경”...
Vue 프로젝트 생성과 todo list 만들기
create project vue create appname vue create를 사용하여 vue 프로젝트를 생성한다. 프로젝트 이름에는 대문자가 들어갈 수 없으며, 하이픈(-)은 사용 가능하다. (ex. my-app) 위 명령어를 치게 되면 vue 프로젝트를 생성할 수 있는 선택지가 나온다. vue 2, 3버전을 사용하거나 원하는 의존성을...
TCPIP 4계층 / Transport 계층 TCP, UDP
Transport 계층 TCP/IP 4계층의 transport 계층은 OSI 7계층에서 transport 계층과 같다 TCP, UDP가 대표적이며 애플리케이션 계층에서 받은 메세지를 기반으로 세그먼트 또는 데이터그램으로 데이터를 쪼개고 데이터가 오류없이 순서대로 전달되도록 도움을 주는 층이다. TCP는 20~60바이트로 가변적이고, UDP는 8바...
너무 헷갈리는 동기와 비동기 알아보기
웹 페이지에서는 동기적 동작과 비동기적 동작이 발생할 수 있다. 이번 포스팅에서는 spring boot를 이용해 동기와 비동기 동작에 대해 알아본다. Synchronous 동기적 방식은 하나의 요청이 발생하고 해당 요청이 끝나기 전까지 다른 작업을 할 수 없는 방식이다. 하나의 요청에서 응답이 온 후 다음 요청을 보낼 수 있다. Asynchron...