개발자로서 조금씩 정체기가 오는것 같아, 재밌고 신선한게 무엇이 있을까 찾던 찰나에
점핏(jumpit)에서 진행하는 개취콘을 발견하게 되었다.
다행히 요번 개취콘은 프론트엔드가 아닌 백엔드여서 재빠르게 신청을 했다.
https://www.youtube.com/live/qI4zF0GfEW0?si=g_pX_zgOIV1KuOSi
해당 영상의 내용을 정리해보았습니다.
👉 손진규 - 중요한 건 인터페이스
- 최소한의 기능으로 빠르게 만든 MVP를 전달할 수 있지만굉장히 값싸게 사용자의 니즈를 검증할 수 있다.
- 그것 보다도 더 빠르게 pretotyping을 전달하면 굉장히 값싸게 사용자의 니즈를 검증할 수 있다.
나는 오너십을 가진 개발자들을 좋아한다.
- 해당 부분에 오너십을 가지고 있으면 어떻게 하면 좋을까요? 가 아니라 본인의 일로써, 제가 생각하기엔 1안 2안이 좋을것 같은데 요건 어떨까요?
- 이 정도 까지 되면 일을 맡길 수 있다고 생각한다.
- 자기 일처럼 오너십을 가지고 일하는 사람들이 좋은 개발자~
엔지니어(개발자) 로서..
- 엔지니어로서 중요하게 보는 부분은 문제를 어떻게 발견하고, 그것을 해결하기위해서 어떤 노력을 해보았는지 중요
- 내가 거기서 어떤 역할을 하고 어떤것들을 해보았는지가 중요
👉 박용권님_알아두면 쓸 데 있는 코틀린
- 동일한 문제라도 언어가 다르면 문제를 푸는 방식을 달리 할 수 있다.
- 다양한 접근 방법을 알고 사고를 확장하면, 판에 박힌 사고에서 벗어날 수 있게된다.
- 한가지 언어를 마스터하면 일반적으로 다른 언어를 배우기 쉬워진다.
- 다양한 언어를 알고 있으면, 필요에 따라 언어를 꺼내 쓸 수 있다.
- 기회가 오면 잡을 수 있다. 시장의 경쟁력 향상, 더 많은 기회와 선택의 폭
- 언어가 간결하다는것은 - 그언어로 작성된 코드를 읽을 때 의도를 쉽게 파악할 수 있는 구문을 제공할 수 있고, 방해가 되는 구문을 최대한 제거할 수 있다. (자바로 치면 세미콜론 없애고 불필요한것들 생략)
- Data class를 이용해서 getter, setter, toString, equals를 제거 할 수 있음
- 표준 라이브러리가 풍부한 api 제공해줌
- 람다식을 사용해서 굉장히 간단하게 목표를 이룰 수 있다.
- 우리는 소프트웨어의 안전성을 확보하기 위해 다양한 방어코드를 작성한다.
- 널포인트 익셉션을 방어하려고 한다.
- 코틀린은 타입시스템 차원에서 null을 막아버린다.
- 열거형과 같은 특별한 타입에서는 모든 열거형을 다 사용했는지 체크해주기도 한다.
- 이모든것들을 컴파일러 단계에서 제공해주기 때문에, 생산성 저하 없이 안정성을 챙길 수 있다.
- 코틀린은 멀티패러다임 언어이다.
- 우리는 여러개의 패러다임을 알고 있다.
- 선언형 - 무엇을 계산할지
- 명령형 - 어떻게 해결할지
- 코틀린은 명령형 선언형, 즉 함수형과 객체지향을 모두 지원한다.
- 코틀린은 멀티플랫폼을 지원하는 언어이다.
- JVM을 지원하는 곳에서는 잘 동작한다.
- JVM을 지원 하지 않는 플랫폼에서는 코틀린 네이티브를 통해서 동작 시킬 수 있다.
- 코틀린 네이티브는 코틀린으로 작성한 코드를 ios, mac, 리눅스에서 실행 시킬 수 있는 바이트 코드로 컴파일 해준다.
- 웹환경에서는 코틀린 JS를 사용할 수 있고, 자바스크립트나 HTML로 컴파일 할 수 있다.
- 코틀린이라는 하나의 언어로 여러 플랫폼에서 동작하는 코드를 만들어 낼 수 있다.
새로운 언어에 대한 공부
- 어떤 어떤 요소의 최소한의 기능들을 배워보던가, 어떤 기술을 이용해서 최소한으로 동작 시켜봐야지, 이 최소한이 중요하다고 생각한다.
- 조금 해보고 흥미를 느끼면, 한걸음씩 더 나아가면 된다.
- 처음부터 완벽하게 익히고 내가 이걸 잘 써먹어야지 라고 마음을 가지면 압박감때매 쉽게 시작하기 어려워진다.
코틀린으로 서버개발한 앱을 스케일 아웃시 시작시간이 오래 걸리는 이슈를 어떻게 해결했는지
- 코틀린 뿐만아니라 JVM 기반의 서버들은 대부분이다 스케일아웃 시 어플리케이션이 시작될 때 무거운 들이 있다.
- JVM 동작 방식이 기본적으로 애플리케이션이 시작되는 시점에 모든것들을 메모리상에 올린 상태에서 한번 최적화를 경험하고, 최적화 이후에 코드가 동작하는 그런 특징들 때문이다. 결국에는 그런 기반 기술들이 가지고 있는 약점들은 해소하기가 어렵다.
- 그나마 다행인건 JVM이 그런 부분을 해결하기 위해 다양한노력을 하고 있다.
👉 심근우_쿠버네티스는 왜! BE 주니어에게 특별히 좋을까요
- 쿠버네티스의 세계에 발을 들이면 시스템 전체인 플랫폼에 관심을 가지는 것이다.
- 컨테이너 + 쿠버테니스 생태계에 들어오면 다양한 것들을 경험할 수 있다.
- 쿠버네티스 자격증
- cka - 클러스터 운영
- ckad - 개발자들이 배포하기에 적합
- cks - 쿠버네티스 내부 보안
모놀리식은 한서버에 한개의 어플리케이션이 올라가 있으니까 그서버에서 나오는 메트릭을 보면 되고, 그서버에 쌓인 로그를 보면 된다.
마이크로 서비스로 나눠져 있다고 하면, 여러서버에 분산되어 있는 로그를 통합해야한다.
쿠버네티스가 없다고 하면 이일은 굉장히 어려워진다.
gke, eks 같은 매니지서비스 위에서 붙여주는 서비스를 사용할 수도 있을거다
책추천
- 클린 소프트웨어
- 클린 애자일
- 프로그래머의 길, 멘토에게 묻다
- 이제막 견습 프로그래머가 숙련 프로그래머가 되기 위해서 소개
- 각각의 문제에 대한 솔루션일 제공
- 실용주의 프로그래머
- 장인 프로그래머가 숙련된 프로그래머에게 소개
느낀 내용을 토대로, 다시 힘차게 공부해봐야겠다!!