본문 바로가기

분류 전체보기250

[Docker] Docker 설치 가이드 AWS의 EC2에 Docker Server 설치sudo amazon-linux-extras install epel -ysudo yum install –y dockerDocker Testdocker –versionStart Dockersudo usermod –aG docker ec2-user (인스턴스 재 접속)sudo service docker startdocker run hello-world 2024. 7. 29.
[Jenkins] Jenkins 설치 가이드 Maven 버전과 Jenkins 버전은 변경 될 수 있습니다.https://mirror.navercorp.com/apache/maven/maven-3/1. AWS EC2 - Amazon Linux release 2023.4.20240513 (Amazon Linux)JDK 설치sudo dnf updatesudo dnf instlal java-17-amazon-corretto-develjava -versionhttps://maven.apache.org/download.cgiMaven 설치 (EC2에서 실행, Maven 버전은 변경될 수 있으니, 위 사이트에서 버전 확인 필요)sudo amazon-linux-extras install epel -ycd /optls -ltrsudo wget https://mir.. 2024. 7. 29.
2024-07-27 ~ 2024-07-29 학습일기 2024-07-27 ~ 2024-07-29 기간동안 가족여행에 다녀왔다. 따라서, 많은 학습은 하지 못했고 알고리즘 문제만 풀었다.  알고리즘촌수계산그래프 2024. 7. 29.
2024-07-26 학습일기 스프링어제 탬플릿 패턴으로 로그 추적기를 구현했었는데 이것에는 다소 문제점이 존재한다고 한다. 탬플릿 메서드 패턴을 사용하면 자식 클래스는 부모 클래스의 기능을 전혀 사용하지 않는데강결합되는 단점이 존재한다.부모 클래스에 새로운 메소드가 추가되면 자식 클래스는 전부 다 바뀌어야 함따라서, 엄청 좋은 구현 방법은 아니라고 한다.전략 패턴반복되는 작업을 하는 클래스의 내용이 바뀌어도전략 패턴의 경우 인터페이스만 의존하고 있기에 다른 클래스의 변경이 크게 영향을 미치지 않음특정 작업에 관한 인터페이스의 메소드만을 재정의해서 사용하므로전략 패턴을 주입받는 클래스의 생성시 관련 인자를 람다로 구현구현되어야 하는 메소드가 한 개일 때만 가능변하지 않는 부분을 Context(로그 출력 부분), 변하는 부분을 Stra.. 2024. 7. 26.
2024-07-25 학습기록 스프링ThreadLocal을 사용하여 로그 추적기의 동시성 문제를 해결했었다.하지만, 여전히 Controller - Service - Repository에 불필요한 반복되는 코드는 남아있다. 이걸 똑똑하게 처리하기 위해 탬플릿 패턴을 적용하는 과정에 관해 학습했다.탬플릿 패턴은 공통으로 사용되는 부분은 묶어놓고 매번 다르게 사용되는 부분에 관해서는해당 탬플릿 패턴 클래스를 구현하는 쪽 클래스로 미룸으로 사용이 가능하다. 탬플릿 패턴은 내 블로그 포스팅에서도 담겨 있듯이 추상 클래스로 생성하여공통된 부분에 관한 코드는 작성해놓고 하위 자식 클래스에서 사용되는 부분만추상 메소드로 미룸으로 Override하여 동적 바인딩이 되도록 구성한다. 이때, 익명 내부 클래스를 사용하여 새로운 자식 클래스 파일을 생성하.. 2024. 7. 25.
[Spring AOP] 로그 추적기 개발(ThreadLocal) 요구사항 분석만약, 새로운 회사에 입사했는데, 수 년간 운영중인 거대한 프로젝트에 투입되었다. 전체 소스 코드는 수 십만 라인 이고, 클래스 수도 수 백개 이상이다.나에게 처음 맡겨진 요구사항은 로그 추적기를 만드는 것이다. 하물며, 애플리케이션이 커지면서 점점 모니터링과 운영이 중요해지는 단계이다. 특히 최근 자주 병목이 발생하고 있다. 어떤 부 분에서 병목이 발생하는지, 그리고 어떤 부분에서 예외가 발생하는지를 로그를 통해 확인하는 것이 점점 중요해지고 있다. 기존에는 개발자가 문제가 발생한 다음에 관련 부분을 어렵게 찾아서 로그를 하나하나 직접 만들어서 남겼다. 로그를 미리 남겨둔다면 이런 부분을 손쉽게 찾을 수 있을 것이다. 이 부분을 개선하고 자동화 하는 것이 나의 미션이다.  요구사항모든 PU.. 2024. 7. 25.