회사는 연일 맹위를 떨치는 코로나때문에 일찍부터 전일 재택근무중이다. 덕분에 가뜩이나 집순이인 나는 더욱 더 나갈 일이 없어졌고, 그러다보니 슬럼프 혹은 번아웃이 왔다. 사실 신입으로 입사하게 되면 기대하게 되는 것들이 몇 가지 있는데 전일 재택근무를 하게 되면서 거의 그런 것들을 누리지 못했다. 팀원들은 얼굴도 제대로 보지 못했고, 그 상태에서 이것저것 물어보려니 어렵다. 그 와중에 일은 해야하는데, 속도는 안 나고... 더 큰 문제는 무엇을 공부해야할지 잘 모르겠다는 것이었다. 실력있는 대리급이 되기 위해 난 무엇을 공부해야할까, 계속 고민만 했다. 크게 보자면 새로운 기술을 배울 것이냐, 기초를 좀 더 다질 것이냐 이 두 갈래였다. 고민하다가 지금은 기초를 좀 더 다져야할 때라는 결론에 이르렀다. ..
입사 2달만에... 첫 개발과제를 받고 오늘 팀장님께 코드리뷰를 받았다. 팀장님이 하신 말씀 중에 상처가 되는 말도 있었지만, 코드에 대해서 지적하신 내용은 내가 생각해도 팀장님의 말씀이 맞다고 생각했다. 그래서 까먹고 그냥 흘려버리기 전에 코드리뷰 받은 내용을 정리해둔다. 1. 객체 자체의 null 체크 잊지 말기 - 객체를 만들어서 객체의 변수로 null 체크는 하지만 객체 자체의 null 체크를 안 하고 있던 부분이 있었다. 2. 메소드에서 파라미터로 받은 객체 자체의 값을 변경해서 돌려주지 말기 - 굳이 그런 로직으로 써야한다면 새로 객체를 만들어서 그 객체를 돌려주도록 한다. 3. 변화가 없는 경우, 상수로 빼기 - 요청일시포맷이 정해져있는 경우 이런 포맷을 상수로 빼내는 것이 좋다. 4. AP..
기획부터 설계, 디자인, 개발까지 오롯이 나 혼자 해온 프로젝트를 드디어 aws를 통해 배포했다! 두 달쯤 전부터 시작했던 것 같은데 회사다니면서 공부할 것들이 많이 생겨서 짬짬이라도 진행했고, 가장 기본적인 기능만 넣어서 우선 배포했다. 중간에 정말... 그냥 포기하고 싶었던 순간이 있었는데, 바로 템플릿 엔진 문제였다. 난 jsp에 익숙하다보니 그냥 jsp로 진행했는데 알고보니 스프링부트에서는 jar로 배포할 때 jsp를 지원하지 않는다고 한다... 애써서 배포했더니 white label error page가 떴을 때는 정말 절망스러웠다. 그래서 배포방식바꿔서 해보자했는데 그것도 안되고, 그래서 참아가며 jsp를 타임리프로 바꿨다. 다행히 지금 듣고 있는 강의에서 타임리프에 대해 알려줘서 적용이 수월..
내가 쿠버네티스 클러스터에 배포해야하는 애플리케이션은 profile yaml파일이 굉장히 많았고, 이 profile을 동적으로 선택하는 것이었다. 로컬에서 돌릴 때는 configuration에서 그냥 값을 입력해주면 되지만 쿠버네티스 클러스터에 배포하기 위해서는 어느 시점에선가 active profile을 결정해줘야 했는데, 어떻게 해야할지 찾아보다가 오늘 해결했다. 내가 생각했을 때 프로파일을 결정할 수 있는 타이밍은 크게 두 가지가 있었는데, 하나는 docker 이미지로 만들 때와 다른 하나는 deployment로 파드를 만들 때이다. 배운 내용으로는 파드의 환경변수를 관리하는 게 configMap이니까 파드를 만들 때 configMap으로 넣어줄 수 있는지 알아봤는데, 내가 알아본 것으로는 그렇게 ..
GKE에서 docker hub에 있는 private 이미지를 pull하려면 인증이 필요하다. 이 인증을 어떤 타이밍에 어떻게 해주느냐가 관건인데, Secret을 만들고 Pod나 Deployment 생성시 Secret을 걸어주면 된다. 시크릿 생성하기 kubectl create secret docker-registry regcred --docker-server= --docker-username= --docker-password= --docker-email= # : 프라이빗 도커 저장소의 FQDN. 도커허브는 https://index.docker.io/v2/ 이다. # : 도커 사용자의 계정 # : 도커 사용자의 비밀번호 # : 도커 사용자의 이메일 주소 시크릿과 Pod 혹은 Deployment 연결하기 P..
나처럼... 정말 아무 것도 모르는 왕왕초보 개발자가 강의를 들을까봐, 혹시나 하필 구축한 실습환경이 GKE일까봐 정리해둔다. 본 강의에서는 쿠버네티스를 다룰 때 주로 대시보드를 이용한다. 물론 대시보드로 하다보니 이해하긴 쉽지만 대시보드로도 해결되지 않는 경우가 왕왕 있었다. 대시보드로 해결되지 않을 때는 cmd창에서 작업하면 된다. GCP로 실습환경을 구축하고 SDK 설치 및 설정까지 완료하면 cmd창에서 kubectl로 쿠버네티스를 접근할 수 있다. 예를 들어, 대시보드의 경우 생성버튼(오른쪽 위 + 버튼)을 눌러서 [Create from input]에서 yaml파일 내용을 입력해서 생성할 수도 있지만, 먼저 원하는 경로에 yaml파일을 만들고, 그 경로에서 아래의 명령어를 실행해서 생성할 수도 있..