January 04, 2023
이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 클래스 클래스의 정의 코틀린에서 클래스는 위와 같이 정의한다. 주 생성자 클래스 이름 우측의 키워드를 통해 클래스의 생성자를 정의할 수 있다. 이를 **주 생성자(Primary Constructor) 라고…
January 04, 2023
이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 함수 함수의 정의 위와 같이 이라는 키워드를 사용하여 함수를 정의한다. 반환 타입은 메소드 시그니쳐 맨 뒤에 변수와 동일하게 을 사용하여 명시한다. 나머지는 자바와 비슷하다. 참고로 코틀린의 함수는 자…
December 31, 2022
나는 걸리지 않고 무사히 지나갈 줄 알았던 코로나를 하필이면 연말에 걸리고 말았다 🤒. 연말 약속도 있고, 가족끼리 새해 해돋이도 보러 가기로 했었는데, 아쉽지만 모두 취소했다. 격리 중 할것도 없으니 제주도 여행 중 쓰기 시작한 2022년 회고를 마무리 지어보려고 한다. 우아한테크코스 4기 백엔드 수료 올해 2월부터 11월까지 진행된 우아한테크코스 4…
December 31, 2022
이 포스팅의 목표는 코틀린의 대략적인 문법을 살펴보는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 범위 표현식 (Range Expression) 코틀린에서 연산자를 사용하면 특정 수의 범위를 표현할 수 있다. 이렇게 생성된 것을 범위(Range)라고 한다. 좌항부터 우항까지의 범위를 생성한다. 이때, …
December 28, 2022
MySQL 바이너리 로그 MySQL에는 바이너리 로그라는 것이 존재한다. 바이너리 로그에는 MySQL에서 데이터베이스에서 테이블 생성, 변경 작업, 데이터 추가, 삭제, 변경 등의 ‘이벤트’가 저장되어 있다. 단, SELECT 와 같이 데이터베이스를 변경하지 않는 명령에 대한 이벤트는 저장하지 않는다. 이 바이너리 로그는 크게 두 가지로 활용된다. 첫번째…
December 27, 2022
이 포스팅에서는 Spring Actuator, Prometheus, Grafana를 사용하여 스프링부트 애플리케이션과 관련된 여러 메트릭을 수집하고, 시각화하여 모니터링할 수 있는 환경을 구축한다. 이 글에서는 각각의 컨셉과 환경 구성 방법을 전체적으로 다룬다. 각각에 대한 자세한 내용은 추후 학습하여 포스팅 해보도록 하겠다. 전체 구조는 위와 같다. …
December 22, 2022
우아한테크코스에서 약 10개월간 자바를 사용하여 프로그래밍을 해왔다. 그런데 내년 1월 초에 재직 예정인 회사에서는 100% 코틀린을 사용한다고 한다. 따라서 자바와 다른 부분을 중심으로 코틀린 문법을 간단하게 학습해보려고 한다. 이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의…
December 20, 2022
배경 이전 달록 프로젝트에서는 Jenkins를 사용하여 배포 자동화 파이프라인을 구축했었다. Jenkins에서 직접 jar 파일을 빌드하고, 빌드 결과물을 리눅스 명령을 통해 배포 대상 서버로 보낸 다음 SSH로 서버에 접속하여 직접 jar파일을 실행하였다. 달록이야 WAS가 분산환경이 아니다 보니까 이와 같은 구조로 배포 자동화를 해도 큰 문제는 없었…
December 19, 2022
GitHub Actions 란? GitHub에서 제공하는 CI/CD 플랫폼이다. Pull Request가 생성되면 해당 코드에 대한 테스트와 빌드를 자동으로 실행하거나, Merge된 PR에 대한 배포를 자동화할 수 있다. 이런 DevOps 작업을 넘어, 단순히 Issue가 생성되었을 때 적절한 label을 등록하는 등의 단순한 워크플로우도 작성해볼 수 있…
November 28, 2022
이전 포스팅인 무중단 배포 중 구버전 프로세스를 그냥 종료해도 괜찮을까? (feat. Kill, Graceful Shutdown) 에서 스프링부트의 Graceful Shutdown에 대해서 간단히 다루어보았다. 이 내용을 조금 더 자세히 다루어보려고 한다. Graceful Shutdown 이 없다면? 일단 처리 속도가 굉장히 느린 API를 하나 만들자. …