user-thumbnail
@owljoa
오늘은 DevOps에 관심있는 개발자입니다. 내일은 어떨지..
SERIES

daily-notes

[Spring Boot] 의존성 주입 시 서로 다른 구현체 식별 방법

2019년 7월 28일

190412 Q1. Autowired 어노테이션 붙인 서비스 인터페이스의 구현체가 여러개인 경우에는 어떤 구현체..? A1. Autowired를 처리할 때 Bean객체를 찾는 과정이 Type을 먼저 보고, 이후에 Qualifier로 지정된 id를 확인하여 의존성 주입함 ex) 읽어볼 자료.. 생성자 기반의 의존성 주입 Constructor...

DDD(Domain Driven Design) 끄적임..

2019년 7월 28일

190418 DDD(Domain Driven Design) 1. Layered Architecturre(Seapration of Concern) - UI - Application - Domain - Infrastructure 1) UI - 사용자한테 보여줄 화면 + 사용자 이벤트(Front) 2) Application - 업무 규칙이나 지식...

docker container

2019년 7월 28일

190422 - 배포 테스트 환경(여러개 띄우고 초기 상태로 빨리 돌려야하는.. 그런 환경)으로 docker container가 편하더라.. Docker Container 1. Container - OS 가상화가 아닌 프로세스 격리 방법 - 리눅스 컨테이너(LXC)를 기반으로 시작 2. Image - 컨테이너 실행에 필요한 파...

외부 라이브러리 사용 시 비즈니스 로직과 분리

2019년 7월 28일

- 외부 라이브러리 사용하는 경우 언제든 라이브러리 교체가 가능하도록 분리해둘것.. (이 시점까지도 라이브러리 교체는 없었지만..;) - 라이브러리 유틸 - 구현체(라이브러리 유틸 참조 및 인터페이스 구현) - 비즈니스 로직 인터페이스 - 190423 SFTP 파일 배포, SSH Command 실행부분의 jSch 라이브러리 사용 로직 통합 ...

쉘 스크립트 표준에러, 표준출력 처리

2019년 7월 28일

190425 배포 관련 프로젝트를 하다보니.. 쉘 스크립트 짤 일이 많네.. Bash Shell 1. 2 &1 - 0, 1, 2는 각각 표준입력, 표준출력, 표준에러 - 2&1은 표준출력이 전달되는 곳으로 표준에러를 전달하라는 의미 2. "어떤 구문" /dev/null - 표준출력을 버리라는 의미 - ex) if (ls -l $0 grep...

쉘 스크립트 파일 실행 시 sub shell로 인한 환경변수 미등록 문제

2019년 7월 28일

190429 Problem 1. jdk 설치과정을 shell script file로 작성할 때 환경변수 세팅이 적용되지 않는 문제 - 원인: shell script file 실행 시 실행의 주체가되는 쉘 프로세스(현재 remote shell)가 새로운 sub shell 프로세스를 생성하여 sub shell 내에서 실행함 - sub shell은 부모쉘...

Spring Boot - JPA - Hibernate 환경에서 DB 초기화

2019년 7월 28일

190430 Spring Boot 2.x 기준 개발 중에 DB 초기화를 자동으로 하기 위한 방법들? 1. JPA-Hibernate 고유 기능 사용 - spring.jpa.generate-ddl 속성 - true로 설정 시, Entity 어노테이션(@Entity)이 명시된 클래스를 찾아서 ddl을 생성하고 실행 - spring.jpa.hiberant...

Postgresql Database 백업

2019년 7월 30일

기존 서버에서 다른 서버로 시스템 이전에 사용 예정... - postgresql database 백업 - pg_dump dbname=myDB host=127.0.0.1 port=5432 username=myID password format=p file=./myDB.sql - option - dbname: 대상 데이터베이스 이름 - host: ...

maven 단일 프로젝트에서 2개 이상 jar 파일 뽑기

2019년 7월 30일

Problem - 누군가가.. 구현한 메이븐 프로젝트(java기반)가 내부적으로 main 클래스를 여러개 가지고 있고 모두 따로 빌드해야하는 경우... (그 누군가..는 이클립스에서 각 main 클래스 우클릭 export - runnable jar로 뽑아낸 jar 파일을 나에게 준다..) 그런데 나는 이 과정을 자동화해야한다.. (메인 시스템 빌드하는 젠킨...

[Jenkins] curl로 파라미터 주면서 빌드 시작하는 방법

2019년 7월 31일

Problem - 서로 다른 여러 서버에 jenkins 빌드 결과물을 배포해야하는데 현재는 모든 대상 서버에 배포 중.. 대상 서버를 선택해서 배포할 수 있어야 함 (무중단배포 적용 이전에 임시로 아주 잠깐의 기간동안 사용 예정 ㅡㅡ..) Solve - 기존에 사용하던 git push event로 빌드를 시작하는 옵션을 해제하고 새로 추가된 패치용 ...

[작성중] 190807

2019년 8월 7일

Problem 1. nginx 403 forbidden https://itzone.tistory.com/646 Problem 2. 502 bad gateway /var/log/nginx/error.log connect() to 127.0.0.1:8888 failed (13: Permission denied) while connecting to upst...

[CentOS 7] root가 아닌 유저가 특정 명령을 sudo 권한으로 실행할 수 있게하는 방법

2019년 8월 13일

CentOS 7 기준 Problem. 무중단 배포 시 배포 주체가 되는 root가 아닌 user가 nginx의 프록시 포트 변경 후 nginx를 reload 해야하는데 sudoer에 무작정 추가하면 root나 다름 없으니.. 다른 방법이 필요 (스크립트 파일을 사용하여 자동화를 목적으로 하기 때문에 패스워드 입력 없이 가능하도록 해야함) S...

[CentOS 7] LVM 확장

2019년 9월 20일

[centos-root 논리볼륨 확장] http://blog.naver.com/PostView.nhn?blogId=hanajava&logNo=221496295239&redirect=Dlog&widgetTypeCall=true&directAccess=false Problem. 테스트용 DB 서버의 데이터 용량이 늘어나서 더 이상 데이터 추가가 불가능한...