티스토리 뷰

1. 문제와 해결방법 **(과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제)**

 

1) 이번주에 겪은 문제는 환경변수에 따라서 다르게 CD 하는게 이해가 안되었다.

application.yml을 환경별로 어떻게 다르게 하여 CI/CD 하는지 이해가 안됨.

=> 해결방안 : secret에 환경별로 application.yml을 저장하고, github-action 코드에서 빌드시마다 src/main/resources 폴더에 생성하여 프로젝트를 빌드하는 방식으로 진행 예정.

 

2) github secret 사용법을 이해하지 못했다

어디에 application.yml을 넣는지 등등

=> 해결방안 : github secret에서 application.yml을 base24 인코딩 하여 사용하는 방식으로 해결 예정

https://velog.io/@balparang/Github-Secret-%EC%9C%BC%EB%A1%9C-yml-%ED%8C%8C%EC%9D%BC-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0

 

Github Secret 으로 yml 파일 관리하기

민감한 정보(유출되면 안 되는 비밀번호 등)를 Github에 올리게 되면 피똥을 쌀 수도 있으므로, 이를 암호화 해서 관리하는 방법에 대해서 알아보자.

velog.io

 

3) CI를 할 때 ./gradlew build를 하면 DB 연결이 안되어서 테스트코드 실패

CI할 때 테스트 fail하는 부분에서 어려움이 있었다. 

=> 해결방안 : dev 환경은 H2 메모리 방식으로 application.yml 설정, prod 환경은 RDS나 TestContainer로 해결 예정

 



2. 문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요? 

 

1) CI/CD를 하는 이유

CI/CD가 그냥 단순히 브랜치에 머지되면 배포 해주는 것이 CI/CD의 역할이 아니라는 것을 알게 되었다.

CI를 통해서 코드를 테스트 -> lint 처리 -> 코드 build를 하여 배포시에 발생할 수 있는 오류를 미리 자동으로 점검할 수 있다.

그리고 CD를 통해서 배포를 자동화 하는 것에 의미가 있다. 서버를 올렸다 내리고 컴파일 하는 번거롭고 실수가 발생할 수 있는 배포 프로세스를 자동화시키는 것에 의미가 있다.

 

2) Docker를 사용하는 이유

운영 환경에서는 서버를 scale out 하는 경우가 생기는데, 이렇게 서버를 새로 구축하는 경우 동일한 환경으로 서비스를 배포해야 하기 때문에 Docker의 컨테이너 기술을 사용한다.

 

4) github-action에 생각보다 많은 툴을 사용할 수 있다

Slack으로 배포 알림 하는 것, 코드 테스트, DockerHub에 이미지 파일 올리기 등등 github-action 코드 상에 여러가지 툴을 붙여서 CI/CD를 할 수 있다는 것을 알았다. CI/CD에 사용하는 다양한 툴을 알아보고 붙여보기

 


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Keep : 현재 만족하고 계속 유지할 부분**

1. 모르는 부분에 대해서 적극적으로 물어보고, 리뷰를 요청했던 점.

2. github-action을 사용해서 빌드한점

 


Problem : 개선이 필요하다고 생각하는 문제점

1. 지난 5주 너무 빡세게 달렸는지 6주차에는 살짝 텐션이 낮아졌다. 나머지 4주 좀 더 집중해서 마무리 잘 하기.

2. ECR/ECS에 도커 이미지를 배포하기

3. lint 적용해서 코드 안정성 높이기


Try : 문제점을 해결하기 위해 시도해야 할 것

 

1. 그날 그날 끝내야 하는 task 정하기. github project 기능과 마일스톤 기능으로 하기

2. 코드 리팩토링, CI/CD 마무리 등 할게 점점 쌓인다. 7주차에는 휴일을 이용해서 이런 밀린 작업들을 처리하자.

댓글