회사 업무를 진행하다가 최근에 다루기 어려웠던 문제가 있어서 적어둔다. API에 요청을 하고 그 응답을 받아서 응답에 따라 로직을 타는 부분이었는데, 응답이 제대로 안 받아지는 문제가 있었다. Response 우선 내가 받아야 하는 응답의 json구조는 아래와 같았다. { "resultCode":"0000", "resultMessage":"Success", "totalCount":1 "items":[ { "index":0, "name":"홍길동", "gender":"M" } ] } items는 없을 수도 있고, 여러 개로 구성될 수도 있었다. 그럼 받는 방향에서 어떻게 객체를 구성해야 하는지 고민을 했다. 우선 내가 짠 구조는 아래와 같았다. class ApiResponse { private String..
입사 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가 달라지기 때문에 이 파드와 클라이언트를 연결하고자 하면 서비스가 필요하다. 서비스..