4차산업혁명의 일꾼/Java&Spring웹개발과 서버 컴퓨터

2024년 9월을 맞이하며 항해 DEV LAB 후기

르무엘 2024. 9. 1. 03:45

1. 항해 및 DEV LAB 소개

https://hanghae99.spartacodingclub.kr/

 

IT 커리어 성장 코스 항해99, 개발자 취업부터 현직자 코스까지

항해99는 실무에 집중합니다. 최단기간에 개발자로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지.

hanghae99.spartacodingclub.kr

항해에는 취업리부트코스, 프론트엔드, 백엔드 AI의 다양한 코스들이 있습니다.

2024년 9월1일 시점에 코테스터디가 3기가 끝나갑니다.

개발자 소사이어티적인(?) 스터디모임도 있네요

 

이 항해에서 주관하는 항해 DEVLAP 강의 행사 연사분은 시니어3분 주니어 2분이셨습니다.

그 중에 가장 인상적이었던것은 허재 연사님의 클린 아키텍처 : 무한 성장하는 시스템의 비밀이었습니다.

항해플러스 백엔드과정의 허재 코치님인데 항해 웨비나에 코테강의도 올리셨군요...

https://hanghae99.spartacodingclub.kr/webinar/coding-test

 

IT 커리어 성장 코스 항해99, 개발자 취업부터 현직자 코스까지

항해99는 실무에 집중합니다. 최단기간에 개발자로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지.

hanghae99.spartacodingclub.kr

 

선릉역 인근 지하1층 빅플레이스에서 하던데.. 가보니 스파르타코딩클럽 소재한 건물 지하1층이더군요.

 

2. 주니어 연사님의 Git과 AWS 강의

주니어 정성훈 님의 Git강의는 SquashMerge 와 Rebase 등 코드추적할 수 있는 깃 전략에 관한 공부 후기였고,

또 다른 한분 유제환님의 클라우드의 고가용성과 장애 대응관련 AutoScaling, Serverless, ECS, ECK등에서 traffic 대응 관련이고 관련자료는 하기 첨부합니다.

JeHwanYoo/hanghae-dev-lap-ha-dr: 클라우드로 무장한 고가용성 및 장애복구 비법 (github.com)

 

GitHub - JeHwanYoo/hanghae-dev-lap-ha-dr: 클라우드로 무장한 고가용성 및 장애복구 비법

클라우드로 무장한 고가용성 및 장애복구 비법. Contribute to JeHwanYoo/hanghae-dev-lap-ha-dr development by creating an account on GitHub.

github.com

 

3. DEVLAB의 하이라이트 : AI와 자동화, 책임분리, 클린아키텍처 

[1]  AI와 자동화로 주니어 개발자 키우기

인프런 CTO 이동욱님은 향로라는 예명으로 개발바닥 유투버로 활동중이셔서 영상으로 자주 뵈었는데,

https://www.youtube.com/@devbadak

 

개발바닥

본격 세계최초 DEV 엔터테인먼트 토크쇼 두 스타트업 개발자의 요절복통 이야기 구독 안하면 장애남!!

www.youtube.com

 

실물로 뵈는건 처음이었습니다. 기술보다 동기부여되는 인재를 선호하시고, AI는 오픈소스의 모든 언어를 학습하기 때문에 오픈소스 관련 봇을 만들어서 실무에 많이 활용한다고 하시네요. 뭐 문서 보안적인 문제는 LLM을 활용해서 보완하신다고 하고요. 

AI와 자동화로 주니어 개발자를 키우는 것은 시니어 개발자 대상이기 때문에... 사실상.. 항해의 주 target인 신입 및 주니어에 해당하는 강의는 아니었습니다.

https://www.youtube.com/live/v2icwh-nyl4

최근에 우테코에서 생성 AI 똑똑하게 일하는 법 영상을 올렸더군요. 참고하면 좋을 것 같습니다.

 

 

2. 책임분리의 마법 : 깔끔한 폴더구조 만들기

그리고 프론트엔드에서의 책임 분리를 다루신 테오님이 계셨는데...

https://velog.io/@teo/series/%ED%85%8C%EC%98%A4%EC%9D%98-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C

 

시리즈 | 테오의 프론트엔드 - teo.log

안녕하세요. 테오입니다. 스프린트가 시작될 주의 첫날이네요 :) 1 개인의 소중한 시간을 스프린트에 써 주기로 결심한 빈츠, 민민, 비비, 곤이, 혜심쓰, 웹린이, 폴, 해달 모두 모두 감사드립니다

velog.io

음... 저는 프론트 전문이 아니지만 프론트를 좀 알아서 흥미있게 들었습니다.

FSD아키텍처 : 폴더를 만들 때 기존 역할 중심만이 아니라, 관심사중심의존성 단방향책임 분리라는 키워드의 핵심이었습니다.

그리고 고려 할 것으로 무엇이 변하고, 무엇이 변하지 않는가 입니다.

 

관심사는 수평,수직,데이터흐름에 따라 나뉘고 상태관리도 계층분리적으로 하는데...

어쨌건 떠오르는건, 교본이 아니라.. 어떤 한 장수가 한 말입니다.

내게 전쟁터와 장수를 알려달라 그러면 내가 전략기획 할 것이다.

 

3. 클린아키텍처 : 무한성장하는 시스템의 비밀

그 다음으로 무신사의 허재 연사님이 나오셔서 클린아키텍처 강의를 하셨는데,

자 구글에서 검색해서 나오는 것중... 티스토리와 velog를 자기는 거른다고 하십니다.

미디엄 블로그가 보이는데 저런거나 기업블로그나 영어로 된 외국블로그를 보신다는 뜻이겠네요..

Hiring ONLY seniors is the worst policy in the software industry (substack.com)

 

Hiring ONLY seniors is the worst policy in the software industry

Why you should hire a junior for your next open position

zaidesanton.substack.com

이동욱 연사님이 강의하실 때 인용하신 이런 글들만 보고 싶다고 하시는 것 같습니다....

 

음... 결국 ChatGPT오픈 시점 3년을 앞선 미국빅테크들이 오픈한 내용들만 참고하고 싶고, 앞서가고 싶다.

이렇게 받아들였습니다.

 

어쨌건 제일 인상적이었다는 것은 이 클린아키텍처라는 것이, 계속해서 개발자들이 생각해온 개념이고, 또 저도 생각해본 개념이기 때문에 강의를 흥미롭게 들었습니다.

일단, 고전적인 클린아키텍처 그림을 들고 나오셨습니다.

백엔드는 프론트와 다르게 이미 책임분리가 controller,service,repository등 잘되어 있다고 테오님이 말씀하셨는데.. 밑에도 얼핏 보입니다.

https://daryeou.tistory.com/280

 

클린 아키텍처(Clean Architecture) 개념 및 원칙

개발이란 마치 여러 개의 기반이 되는 블록을 만들어 설계 원칙에 따라 조립하여 완성해 나아가는 과정이라고 생각합니다. 여기서 설계 원칙은 수 많은 디자인 패턴들을 의미하며, 이번 주는 아

daryeou.tistory.com

어쨌건 객체지향의 SOLID원칙과 더불어... 우리는 멋진 알함브라궁전을 원하면서 설계하지만 결국 키메라같은 혼종을 만들어 내니까... 멀리생각하지 말라고 하셨습니다. 뭐 좀더 적절한 표현은 주니어서부터 너무 완벽하게 하려 하지 말라인것 같습니다. 왜냐하면 멀리보지 말 꺼면 항해DEV에서 인프런 CTO이동욱 강사님의 강의를 멀리보는 측면에 듣는 것이 유용하기 때문입니다. 뭐 당장 한다면 쉽지 않겠죠?

그리고 객체지향설계에서 서로 다른 의견을 예시로 들으신게 있는데, 저는 허재 코치님이 말씀하신게 공개적으로 말할 때는 일반화시켜 말하는게 보통이기 때문에 좀더 적절한 것 같습니다.

이게 무슨 말이냐면.. 

책임분리의 단방향의존은 기본으로 깔고, Domain에서 Component쪽으로 책임일부라기 보다 추상화된 도메인을 구체화 시킨 것을 말합니다.

 

 예약기능을 예로 들면, 일단 콘서트예약기능을 만들 다고 할 때, concert라는 폴더를 만들게 되면 콘서트는 예약에 의존하게 됩니다. 그래서 나중에 확장하게 되면 문제가 생깁니다. 호텔예약, 식당예약, 티켓예약.. 예약기능을 확장하게 되면 결국 아키텍처구조에 문제가 생깁니다. 

 뭐, 콘서트예약프로젝트에 한정하여 예약기능을 생각하면 콘서트와 예약은 별개의 폴더로 분리할 수 있고 의존성도 따라서 분리할 수 있습니다. 즉 콘서트예약프로젝트에 한정한 예약기능관련 객체지향설계라고 할 수 있습니다.

 보편적인 예약기능설계의 객체지향설계로 구분 할 때, 전자는 조건이 달려 있으므로 보편적이고 일반적인 객체지향설계가 아닌 그냥 그 프로젝트내에서의 객체지향설계입니다.

 그래서 허재코치님이 말씀하신게 객체지향설계 확장염두에둔 설계에 따른다면.. 이 설계가 보편적이고 일반적인 객체지향적인 설계라고 해야 한다고 생각합니다.

이게 제가 듣고 정리한 Domain에서 Component와의 관계를 생각 하면서 클린아키텍처적인 설계의 핵심이라고 생각합니다. 이게 알함브라궁전을 생각하면서 키메라를 만들지 않기 위한 설계를 설명하고 싶으신 것이라고 보고요. 

 또한, 말씀하신대로 Software개발자는 Hardware개발자보다 좀더 말랑말랑하게 개발을 할 필요가 있기 때문이라는데에도 전적으로 동감하고요.

보호해야할 부분은 보호하고, 확장해야 하는 부분은 확장하고.. 개발시 제일 신경쓰이는 부분이고.. 이것은 설계구조에 영향을 크게 받습니다.

 콘서트와 예약폴더를 분리 시키지 않으면, 예약기능이 추후 확장시에 초기에 설계할 때 예약 entity에 사용자정보, 예약키생성, 예약생성, 부가정보추가에서 부가정보 추가에만 넣으면 되서, 사실상 말씀하신대로 확장되어도 if문만 넣으면 되는 것으로 끝납니다.

네트워킹 시간에도 클린아키텍처와 책임분리에 관한 것을 토론했는데 나름 유익했습니다. 요즘 백엔드에 MSA 등 핫한 것들이 많고, 전화기, 삐삐, 핸드폰, 스마트폰, 앱 ,LTE, 5G, chatgpt 등 거의 3년 주기로 혁신적인 제품들이 나타나는 시대에, 객체지향설계와 그 중에 특히 클린아키텍처책임분리라는 개념을 다시금 정리할 수 있는 귀한 시간이어서 감사 했습니다. 또한 간식으로 나온 디저트들이 아주 맛있고, 계속 관리해주는 분이 있는 것도 놀랐고, 물도 풍부하게 비치되어 있어서, 아주 몸도 마음도 흡족한 시간이었습니다^~^

 

LIST