오랜만에 즐거운 시간이었다. 회사생활, 교육, 스터디 등을 통해 얻는 즐거움도 상당하지만, 이건 좀 뭔가 더 자극적이다. 얼마전 AWS DNA 모집 공고를 보았다. 지난 해 신청을 했다가 캘린더를 보고 취소 요청을 했었던터라, 올해는 바쁘더라도 신청을 해야겠다 마음 먹었다. 경쟁률이 상당하다고 들었고, 실제로 주변 지인들이 떨어졌지만 나는 붙었다. (왜지?! 🙄) AWS DNA. Digital Native Architects의 줄임말로, 대략 AWS로 사고하고 문제를 해결하는 이들을 양성하기 위한 교육인듯 싶다. AWS의 기능은 빠르게 업데이트되는데 비해 현업 엔지니어는 수동적이다. 기존의 기술들로도 현재의 문제를 잘 해결해나가고 있고, 특정 기술에 lock-in 되는 것에 거부감을 느끼기 때문이다. 하..
이제는 멈춰버린 블로그. 회고를 통해 생존신고를 남겨본다. 2021년 상반기. 여전히 글또를 시작하지 않고 있다. 그리고 하반기에도 시작하지 않을 계획이다. 2주에 한번씩 글을 쓰기엔 시간이 부족하다. 이번 상반기엔 무얼 했던걸까 1. 외부 강의 https://edu.nextstep.camp/c/VI4PhjPA 인프라 공방 edu.nextstep.camp 인프라공방이 1기에 이어 2기도 순항 중이다. 1기 10명으로 시작하여 2분만에 마감되었다. 그리고 2기는 15명에 리뷰어 한명과 함께 하고 있다. 3기는 20명으로 진행할 계획이다. 과정을 진행하면서 강의도 다듬어지고 미션, 리뷰로 소통하며 내용도 풍부해진다. 우테캠 Pro도 1기에 이어 2기를 진행하고 있다. 올해 3기까지 할 계획인데 3기에는 프로..
2020년은 안식년이었다. 참 오랜만에 일상을 살아본 것 같다. 얼마전 회사에서는 하반기 본인 평가를, DevC에서 원격회고, 그리고 와이프와 새해 다짐 등을 하고 나서 이 내용을 바탕으로 2020년 회고를 작성해본다. 1. 결혼 자세한 내용은 링크를 참고해보시길 사랑하는 사람을 만나 3월에 연애를 시작하여 199일 째인 2020.10.10에 결혼을 했다. 결혼을 준비해가는 과정에서 158개의 Task를 수행했고, 그 과정에서 스드메 / 가전 / 가구 / 예단 / 예물 / 예복 / 청첩장 / 결혼식 등 지금까지 경험해보지 못했던 다양한 부분에서 결정을 해야 하는 순간들이 있었다. 덕분에 일상을 살아보는 계기가 되었고, 가족에 대해 생각해볼 수 있었다. 와이프를 만나고 가장 변화된 점이 건강에 대한 시각이..
이번 상반기 회고는 하지 말까하다가 그래도 기록으로 남겨두는 것이 좋을 거 같아 작성해본다. 총평을 하자면, 하나의 큰 변화가 있었고 그 외 대체적으로 망했다. 행복하고 뜻 깊은 시간은 분명했으나, 이렇게 오래 지속되기는 힘들거라 생각한다. 그 이유에 대해서 이야기해본다. 우선 상반기 나의 목표는, MySQL 내실을 다지고 컨텐츠로 만들어 외부 강의를 하는 것이었다. 그렇게 시스템 아키텍처의 한 부분씩 준비를 하여 자신이 원하는 시스템 디자인에 필요한 부분들을 취합해서 들을 수 있는 커리큘럼을 만들고 싶었다. 하지만 공부도 안했고, 강의 준비도 안했다. 놀았기 때문이다. 놀아도 너무 놀았다 😱 1월에 시작했던 안식월이 지금까지 계속 될 줄이야.. 4기에 작성했던 글또 글도 보면, 쿠버네티스 네트워킹은 이..
우아한 테크코스 레벨3와 레벨4의 커리큘럼을 바꾸면서, 크루들에게 프로젝트 준비를 위한 시간이 주어졌다. 기획서를 작성하고 프로젝트를 준비하는데에 앞서 어떤 메시지를 주면 좋을지 고민이 시작되었다. 그러다 문득 User Story를 작성해보는 것도 좋겠다는 생각이 들어 강의와 실습 컨텐츠를 만들어보았다. 이 자료는 인간중심 UX 디자인과 사용자를 생각하게 하지마를 참고하여 만들었다. User Story는 사용자 상을 제작하고, 사용자의 시나리오를 작성한 후 요구사항으로 도출된다. 아래에서는 http://edu.nextstep.camp/ 을 가상으로 작성해보았다. 요구사항을 도출하기까지 사용되는 In-Depth Interview와 사용성을 위해 진행하는 Usability Test를 비교해 보는 것도 좋을거..
https://edu.nextstep.camp/c/8fWRxNWU/ 클린코드를 위한 TDD, 리팩토링 with Java edu.nextstep.camp 일급컬렉션 피드백에 이어, 많이 하는 피드백이 불변객체를 작성하라는 것이다. Effective Java에서는 '변경 가능성을 최소화하라'는 챕터를 통해 불변 객체를 소개한다. '불변 객체'는 인스턴스 생성 이후 내부 인스턴스 변수들을 수정할 수 없어야 한다. 이에 근본적으로 Thread-safe하므로 동기화 작업을 할 필요 없어 오류 가능성이 적고 실패 원자성을 제공한다. 불변 객체를 작성하기 위해 Effective Java에서는 아래의 규칙을 소개한다. - 객체의 상태를 변경하는 메서드를 제공하지 않는다. 즉, setter 메서드 등을 통해 인스턴스 변..
https://edu.nextstep.camp/c/8fWRxNWU/ 클린코드를 위한 TDD, 리팩토링 with Java edu.nextstep.camp TDD, 클린코드 코드리뷰를 하다보면 '원시값과 문자열을 포장하라', '일급콜렉션을 쓴다'와 같은 피드백을 주곤한다. Wrapper Class를 작성하는 데에는 어려움이 없지만, 일급콜렉션을 학습하는 과정에서 보통 동욱님의 블로그를 접하는데 두번째 특징인 '불변성'으로 인해 혼란을 겪는다. 객체지향 생활체조에 제시된 일급콜렉션(First Class Collection)은 일급 시민(First Class Citizen)을 연상시킨다. 그리고 일급시민은 함수형 프로그래밍과 더불어 불변객체를 연상시킨다. 우선 일급시민은 무엇이고, 불변객체는 무엇일까? 일급시민..
이번 포스팅에서는 Kubernetes in Action, 매니징 쿠버네티스 을 활용하였습니다. 이 포스팅과 더불어 한우형님의 블로그, Rancher Labs 자료 등을 함께 보시면 더 좋습니다. 1. 기본적인 특징 * 네트워크 구성방식과 관계없이 파드간의 통신 - 모든 Pods는 다른 Pod와 NAT(Network Address Translation)을 사용하지 않고 통신할 수 있다. - 모든 Nodes는 NAT를 사용하지 않고 모든 Pods와 통신할 수 있다. 2. Container-to-Container Networking * NET namespace가 외부와 통신하는 방식 veth interface를 이용하여 두 개의 interface가 Pair를 맺은 후, 한쪽 Interface에 패킷이 들어오면..
벌써 2기, 3기에 이어 4기이다. 이제 1년이 지났다고 생각할 수도 있지만 상황이 많이도 변했다. 2기 시작할 무렵에는 다른 회사에 있었고, 백엔드 개발자 내지 데이터 엔지니어로 반년 정도 일을 한 상태였고, 개발자 행사나 모임에 이제 막 발을 들이는 시기. 모든 게 아직은 많이 낯설던 때였던 거 같다. 3기를 시작할 무렵에는 테크코스며 이런저런 행사며 스터디들로 정신이 없다가 그렇게 한 해를 마무리하고 4기를 시작할 즈음이 되었다. 사실 올해 1월부터는 계속 쉬고 있다. 굳이 갭이어를 두지 않아도 되겠다고 느낄 정도로 1월에는 팀 전체가 안식월을 보냈고, 2월에 어떻게 일을 시작하나 싶더니 코로나 이슈로 모든 일정이 미루어졌다. 그렇게 나태해질 즈음 글또가 적절한 균형감을 줄 수 있게 된 거 같아 다..
ATDD 강의 코드리뷰 중 이런 질문을 받았다. 질문의 요지는, /stations/{id} 혹은 /stations?name={name} 등과 같은 요청에 해당하는 데이터가 없을 경우, 어떤 응답코드가 적절한가이다. HTTP Status Code에 대해서는 나름대로 기준을 세웠던지라 별다른 고민은 없었는데, 팀원과 이야기 중에 생각이 다른 부분이 있어 다른 리뷰어들과도 이야기를 나누어보았다. 이 내용을 정리하고 공유하고 또 다른 의견들을 듣는 것도 좋을 거 같아 포스팅해본다. 우선, 200이 적절하다는 주장을 살펴보자. HTTP에서 이야기하는 resource 라는 개념을 서버 데이터와 엮지 않고 온전히 URI 라고 보아야 한다. 즉, 서버의 데이터 없음을 HTTP resource와 엮지 않아야 한다는 것으..