@Hudi
꾸준히, 의미있는 학습을 기록하기 위한 공간입니다.

코틀린 기초 (4) - 클래스, 인터페이스

January 04, 2023

이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 클래스 클래스의 정의 코틀린에서 클래스는 위와 같이 정의한다. 주 생성자 클래스 이름 우측의 키워드를 통해 클래스의 생성자를 정의할 수 있다. 이를 **주 생성자(Primary Constructor) 라고…


코틀린 기초 (3) - 함수

January 04, 2023

이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 함수 함수의 정의 위와 같이 이라는 키워드를 사용하여 함수를 정의한다. 반환 타입은 메소드 시그니쳐 맨 뒤에 변수와 동일하게 을 사용하여 명시한다. 나머지는 자바와 비슷하다. 참고로 코틀린의 함수는 자…


2022년, 25살을 마치며 적어보는 회고

December 31, 2022

나는 걸리지 않고 무사히 지나갈 줄 알았던 코로나를 하필이면 연말에 걸리고 말았다 🤒. 연말 약속도 있고, 가족끼리 새해 해돋이도 보러 가기로 했었는데, 아쉽지만 모두 취소했다. 격리 중 할것도 없으니 제주도 여행 중 쓰기 시작한 2022년 회고를 마무리 지어보려고 한다. 우아한테크코스 4기 백엔드 수료 올해 2월부터 11월까지 진행된 우아한테크코스 4…


코틀린 기초 (2) - 범위 표현식과 조건문, 반복문

December 31, 2022

이 포스팅의 목표는 코틀린의 대략적인 문법을 살펴보는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의 포스팅으로 다뤄보겠다. 범위 표현식 (Range Expression) 코틀린에서 연산자를 사용하면 특정 수의 범위를 표현할 수 있다. 이렇게 생성된 것을 범위(Range)라고 한다. 좌항부터 우항까지의 범위를 생성한다. 이때, …


실수로 MySQL 데이터를 삭제했을 때 바이너리 로그를 통해 복구하기 😱 (PIT 복구)

December 28, 2022

MySQL 바이너리 로그 MySQL에는 바이너리 로그라는 것이 존재한다. 바이너리 로그에는 MySQL에서 데이터베이스에서 테이블 생성, 변경 작업, 데이터 추가, 삭제, 변경 등의 ‘이벤트’가 저장되어 있다. 단, SELECT 와 같이 데이터베이스를 변경하지 않는 명령에 대한 이벤트는 저장하지 않는다. 이 바이너리 로그는 크게 두 가지로 활용된다. 첫번째…


Spring Boot Actuator, Prometheus, Grafana를 사용한 스프링부트 모니터링 환경 구축

December 27, 2022

이 포스팅에서는 Spring Actuator, Prometheus, Grafana를 사용하여 스프링부트 애플리케이션과 관련된 여러 메트릭을 수집하고, 시각화하여 모니터링할 수 있는 환경을 구축한다. 이 글에서는 각각의 컨셉과 환경 구성 방법을 전체적으로 다룬다. 각각에 대한 자세한 내용은 추후 학습하여 포스팅 해보도록 하겠다. 전체 구조는 위와 같다. …


코틀린 기초 (1) - 변수, 널 가능성, 타입, 연산자

December 22, 2022

우아한테크코스에서 약 10개월간 자바를 사용하여 프로그래밍을 해왔다. 그런데 내년 1월 초에 재직 예정인 회사에서는 100% 코틀린을 사용한다고 한다. 따라서 자바와 다른 부분을 중심으로 코틀린 문법을 간단하게 학습해보려고 한다. 이 포스팅의 목표는 코틀린의 대략적인 문법 체계를 익히는데 있다. 각각의 주제에 대한 깊은 내용은 나중에 기회가 된다면 별도의…


GitHub Actions와 Docker를 사용한 스프링부트 애플리케이션 배포 자동화

December 20, 2022

배경 이전 달록 프로젝트에서는 Jenkins를 사용하여 배포 자동화 파이프라인을 구축했었다. Jenkins에서 직접 jar 파일을 빌드하고, 빌드 결과물을 리눅스 명령을 통해 배포 대상 서버로 보낸 다음 SSH로 서버에 접속하여 직접 jar파일을 실행하였다. 달록이야 WAS가 분산환경이 아니다 보니까 이와 같은 구조로 배포 자동화를 해도 큰 문제는 없었…


GitHub Actions의 핵심 개념

December 19, 2022

GitHub Actions 란? GitHub에서 제공하는 CI/CD 플랫폼이다. Pull Request가 생성되면 해당 코드에 대한 테스트와 빌드를 자동으로 실행하거나, Merge된 PR에 대한 배포를 자동화할 수 있다. 이런 DevOps 작업을 넘어, 단순히 Issue가 생성되었을 때 적절한 label을 등록하는 등의 단순한 워크플로우도 작성해볼 수 있…


SpringBoot Graceful Shutdown

November 28, 2022

이전 포스팅인 무중단 배포 중 구버전 프로세스를 그냥 종료해도 괜찮을까? (feat. Kill, Graceful Shutdown) 에서 스프링부트의 Graceful Shutdown에 대해서 간단히 다루어보았다. 이 내용을 조금 더 자세히 다루어보려고 한다. Graceful Shutdown 이 없다면? 일단 처리 속도가 굉장히 느린 API를 하나 만들자. …