전체 글

스프링부트, 아키텍쳐, 알고리즘
· 언어/Java
데코레이터 패턴이란? 어떤 객체의 메서드에 대하여 기능 추가/변경/제거를 해야 할 때, 같은 메서드를 각기 다르게 구현한 객체의 결합을 통해 메서드를 호출하는 부분을 변경하지 않고 진행할 수 있는 패턴이다. 데코레이터 패턴 사용 시기 메서드 호출의 반환값 중간에 변경을 줘야 할 때 객체 책임과 행동이 동적으로 빈번하게 추가/삭제 되는 경우 객체의 결합을 통해 기능이 생성될 수 있는 경우 객체에서 메서드를 호출하는 코드 부분을 변경하지 않고, 런타임에 객체에 추가 동작을 할당해야 하는 경우 상속으로 해결할 수 없거나 상속 보다 유연한 객체의 기능 확장과 변경이 필요할 때 데코레이터 패턴 사용시의 장점 데코레이터를 사용하면 상속을 사용하여 서로 다른 기능을 하는 자식 클래스들을 만들때보다 훨씬 더 유연하게 ..
· 언어/Java
프록시 패턴이란 프록시는 대리인이라는 뜻으로, 무언가를 대신 처리한다는 의미이다. 어떤 객체를 사용하고자 할 때, 객체를 직접 참조하는 것이 아니라 해당 객체를 대행하는 프록시 객체를 통해 대상 객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 반드시 필요한 시점까지 객체의 생성을 미룰 수 있다. 프록시 패턴 사용 시기 접근을 제어하거가 기능을 추가하고 싶은데, 기존의 특정 객체를 수정할 수 없는 상황일때 초기화 지연, 접근 제어, 로깅, 캐싱 등, 기존 객체 동작에 수정 없이 가미하고 싶을 때 프록시 패턴 사용시 이점 개방 폐쇄 원칙(OCP) 준수 : 기존 대상 객체의 코드를 변경하지 않고 새로운 기능을 추가할 수 있다..
· 언어/Java
어댑터 패턴 서로 다른 두 인터페이스간 통신을 가능하게 하는 디자인 패턴이다. SOLID 원칙 중 개방 폐쇄 원칙을 활용한 설계패턴인데, 이 어댑터 패턴은 사실 Java가 동작하는 근간에 있었다. Java의 동작에 어댑터 패턴이 어디서 어떻게 사용되었는지 보기 전에 먼저 c++과 Java의 컴파일 과정을 살펴보자 c++과 Java의 컴파일과정 객체 프로그래밍을 지원하는 c++에서는 똑같은 로직이 구현된 프로그램을 실행하려면 OS별로 컴파일러가 다르고, 소스코드를 각 컴파일러에 맞게 수정해줘야해서, 소스 코드 내에 32비트의 os로 빌드할때, 64비트의 os로 빌드할때의 두가지의 상황을 하나의 소스코드로 빌드할 수 있도록 개발해야 하다보니 os별로 구현이나 자료형이 달라지는 경우 중복으로 코딩하거나 오버로..
· CICD/Jenkins
진행 과정 aws ec2 freetier(1GB ram)에서 docker container로 jenkins를 띄워 초기 설정 및 github과 연결하는 과정을 진행하고자 함 ubuntu20.04 image로 ec2 instance를 생성해 연결, jenkins는 public repository의 lts version을 이용해서 pull 해서 도커 볼륨 마운트하고 켰다. 설치 과정에서 suggested plugin이 설치가 안됨. 램 부족이 유력한 원인이라고 생각하며 virtualbox의 4GB ram vm에서 테스트 진행 4GB ram에서는 잘 되는 것을 보니 역시 1GB ram 환경에서 컨테이너를 띄워 그 안에서 plugin 설치하는 것이 무리라는 판단. ec2 에서 가상 램 2GB를 확보해 다시 진행..
· 알고리즘
문제 링크 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단..
서병렬
서병렬 개발