입사 2달만에... 첫 개발과제를 받고 오늘 팀장님께 코드리뷰를 받았다. 팀장님이 하신 말씀 중에 상처가 되는 말도 있었지만, 코드에 대해서 지적하신 내용은 내가 생각해도 팀장님의 말씀이 맞다고 생각했다. 그래서 까먹고 그냥 흘려버리기 전에 코드리뷰 받은 내용을 정리해둔다. 1. 객체 자체의 null 체크 잊지 말기 - 객체를 만들어서 객체의 변수로 null 체크는 하지만 객체 자체의 null 체크를 안 하고 있던 부분이 있었다. 2. 메소드에서 파라미터로 받은 객체 자체의 값을 변경해서 돌려주지 말기 - 굳이 그런 로직으로 써야한다면 새로 객체를 만들어서 그 객체를 돌려주도록 한다. 3. 변화가 없는 경우, 상수로 빼기 - 요청일시포맷이 정해져있는 경우 이런 포맷을 상수로 빼내는 것이 좋다. 4. AP..
내가 쿠버네티스 클러스터에 배포해야하는 애플리케이션은 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파일을 만들고, 그 경로에서 아래의 명령어를 실행해서 생성할 수도 있..
인프런 강의를 듣고 있는데, 아무래도 강의에서 권장하는 실습환경이 아니다보니 막힐 때가 한 두번이 아니다... 😭 이번에는 파드를 만들고, 그 파드와 연결된 서비스를 만들어서 서비스의 IP로 접속해서 파드 컨테이너가 제대로 작동한다는 것을 확인하는 것이었다.(Getting started - Kubernetes - 실습) 아니 근데... 강의자분은 서비스만들 때 아래의 부분처럼 써서 서비스를 만들어서 IP에 접근하는데 나는 저렇게 할 경우 접근하지 못하는 문제가 있었다. ... externalIPs: - 192.168.0.30 파드는 IP를 가지고 있긴 하지만 파드는 장애때문에 얼마든지 재생성될 수 있다. 그럴 때마다 IP가 달라지기 때문에 이 파드와 클라이언트를 연결하고자 하면 서비스가 필요하다. 서비스..
인프런의 "대세는 쿠버네티스" 강의를 듣기 시작했는데, 거기서 구축하는 여러 가지 환경 중에 나는 GCP를 이용한 쿠버네티스 환경을 구축했다. 그런데... 본 강의에서는 dashboard를 사용해야하는데, dashboard에 접근이 안되는 문제가 생겼다. 원래 --enable-skip-login을 추가해주면 그냥 skip 버튼만 눌렀을 때 대시보드가 뜨는데, 나는 404에러가 발생했다. 그래서 하는 수 없이 토큰으로 로그인하는 걸로 결정했다. 여기를 참고해서 토큰을 얻어서 로그인했고, 대시보드에 들어갔는데 모든 권한이 forbidden이어서 아래와 같이 입력해서 해결했다. kubectl create clusterrolebinding --user system:serviceaccount:default:def..