190412 Q1. Autowired 어노테이션 붙인 서비스 인터페이스의 구현체가 여러개인 경우에는 어떤 구현체..? A1. Autowired를 처리할 때 Bean객체를 찾는 과정이 Type을 먼저 보고, 이후에 Qualifier로 지정된 id를 확인하여 의존성 주입함 ex) 읽어볼 자료.. 생성자 기반의 의존성 주입 Constructor...
190418 DDD(Domain Driven Design) Layered Architecturre(Seapration of Concern) UI - Application - Domain - Infrastructure 1) UI - 사용자한테 보여줄 화면 + 사용자 이벤트(Front) 2) Application - 업무 규칙이나 지식이 포함되...
190422 - 배포 테스트 환경(여러개 띄우고 초기 상태로 빨리 돌려야하는.. 그런 환경)으로 docker container가 편하더라.. Docker Container 1. Container - OS 가상화가 아닌 프로세스 격리 방법 - 리눅스 컨테이너(LXC)를 기반으로 시작 2. Image - 컨테이너 실행에 필요한 파...
외부 라이브러리 사용하는 경우 언제든 라이브러리 교체가 가능하도록 분리해둘것.. (이 시점까지도 라이브러리 교체는 없었지만..;) 라이브러리 유틸 구현체(라이브러리 유틸 참조 및 인터페이스 구현) 비즈니스 로직 인터페이스 190423 SFTP 파일 배포, SSH Command 실행부분의 jSch 라이브러리 사용 로직 통합 인터페이스를 사용하기엔 ...
190425 배포 관련 프로젝트를 하다보니.. 쉘 스크립트 짤 일이 많네.. Bash Shell 2 > &1 0, 1, 2는 각각 표준입력, 표준출력, 표준에러 2>&1은 표준출력이 전달되는 곳으로 표준에러를 전달하라는 의미 "어떤 구문" > /dev/null 표준출력을 버리라는 의미 ex) if (ls -l $0 | grep $LOG...
190429 Problem 1. jdk 설치과정을 shell script file로 작성할 때 환경변수 세팅이 적용되지 않는 문제 원인: shell script file 실행 시 실행의 주체가되는 쉘 프로세스(현재 remote shell)가 새로운 sub shell 프로세스를 생성하여 sub shell 내에서 실행함 sub shell은 부모쉘(sub sh...
190430 Spring Boot 2.x 기준 개발 중에 DB 초기화를 자동으로 하기 위한 방법들? 1. JPA-Hibernate 고유 기능 사용 - spring.jpa.generate-ddl 속성 - true로 설정 시, Entity 어노테이션(@Entity)이 명시된 클래스를 찾아서 ddl을 생성하고 실행 - spring.jpa.hiberant...
기존 서버에서 다른 서버로 시스템 이전에 사용 예정... postgresql database 백업 pg_dump --dbname=myDB --host=127.0.0.1 --port=5432 --username=myID --password --format=p --file=./myDB.sql option dbname: 대상 데이터베이스 이름 ho...
Problem 누군가가.. 구현한 메이븐 프로젝트(java기반)가 내부적으로 main 클래스를 여러개 가지고 있고 모두 따로 빌드해야하는 경우... (그 누군가..는 이클립스에서 각 main 클래스 우클릭 export - runnable jar로 뽑아낸 jar 파일을 나에게 준다..) 그런데 나는 이 과정을 자동화해야한다.. (메인 시스템 빌드하는 젠킨스 ...
Problem 서로 다른 여러 서버에 jenkins 빌드 결과물을 배포해야하는데 현재는 모든 대상 서버에 배포 중.. 대상 서버를 선택해서 배포할 수 있어야 함 (무중단배포 적용 이전에 임시로 아주 잠깐의 기간동안 사용 예정 ㅡㅡ..) Solve 기존에 사용하던 git push event로 빌드를 시작하는 옵션을 해제하고 새로 추가된 패치용 시스템에 버튼...
CentOS 7 기준 Problem. 무중단 배포 시 배포 주체가 되는 root가 아닌 user가 nginx의 프록시 포트 변경 후 nginx를 reload 해야하는데 sudoer에 무작정 추가하면 root나 다름 없으니.. 다른 방법이 필요 (스크립트 파일을 사용하여 자동화를 목적으로 하기 때문에 패스워드 입력 없이 가능하도록 해야함) Solution...