1) 항해 플러스를 참여하기 전 백그라운드
- 처음 개발을 접한 것은 2017년 1월에 국비지원 부트캠프를 하면서부터였습니다. 그리고 2017년 8년에 수료한 이후, SI/SM업계에 개발을 했고 Spring/Java전성기에 시장에 투입되었습니다.
- 공교롭게도 그 시기인, 2017년은 자바의 대체언어로 거론되는, kotlin을 구글에서 공식으로 안드로이드 개발언어로 인식한 해이기도 합니다.
- SI개발업계에 있으면서 어느정도 시간적여유가 생겼을 때 정보처리기사, SQLD, AWS 자격증을 따고, 방통대 컴퓨터공학과 과정을 하면서, 회사에서 비즈니스컨설팅본부 SI컨설팅팀에서 SI개발을 하고 있었습니다.
- 항해플러스 백엔드 3기부터 Java과정이 있어서 첫 Java 1기수로 합류하게 되었습니다.
2) 항해 플러스에 합류하기로 결심한 이유
- 1,2기 백엔드에는 kotlin만 있었는데 좀더 자신있는 Java가 생겼습니다.그래서 해볼만 하다 생각했습니다. 커리큘럼을 보고 배워두면 나쁘지 않을 것 같다는 생각을 했습니다. 왜냐하면 Github에서 AWS에 CI/CD하고 CloudWatch로 모니터링하고 Lamda, Slack API로 알림설정하며 장애대응하는 일련의 과정은 웹개발로서 클라우드 시대에, 나름 유익하다고 생각했기 때문입니다.
- 장애대응 이후의 오픈소스도 유망하다는 것을 알고 있었고, 어떻게 하는지는 모르겠지만 보고 알아둬서 나쁠것은 없다고 생각했습니다.
- 가격이 조금 부담되는 부분이 있었는데, 커리큘럼을 보면 멘토링, 외부초빙 ,네트워킹 등 다양한 교류가 있는데 개인적으로 가장 기대했던 것은 멘토링이었습니다.
3) 결과물 (두 개 프로젝트 결과물 맛집검색시스템과 커피숍시스템)
MyoungSoo7/cicd: CI/CD to ECR/ECS(fargate) in AWS (github.com)
[1] 과제 요구사항
- 첫프로젝트는 AWS에 ECR/ECS로 CI/CD하는게 시작이었습니다. 그리고 위 요구사항으로 TDD로 맛집API를 구현하는데 TDD에 대한 개념이 잡히지 않아서, 소위 말하는 야생형으로 개발하였습니다. 모니터링,장애대응 모두 튜터리얼을 제공해주어 크게 어려움이 없었습니다. 다만, TDD에 대한 개념적인 면에 앞서 개발하는데 있어서, SpringBoot3(InteliiJ), Java17, Junit을 비롯하여 JPA에 익숙하지 않아서 조금 난항을 겪으면서 개발했습니다.
[2] 문제
SpringBoot3(Java17), JPA,Junit에 익숙하지 않은 것과 별개로 TDD방식에 대한 개념도 잡기전에, 페이징 기능도 어느정도 완성되어 가는데, 핵심적인 기능인 CircuitBreaker 버전에서 프록시 문제가 나타났습니다. 이것은 결과적으로 버전호환이 잘 안되는 부분인 것 같았는데, CircuitBreaker에 대한 개념이해로 kotlin 참고 사이트틀 받아서, 시행착오를 많이 겪었습니다.
[3] 해결
- CircuitBreaker문제는 버전호환문제라는 것을 알았고, 이런 버전호환문제는 redis,docker에서 윈도우와 mac사이에 여러 차이가 있다는 것을 알게 되었습니다. 그리고 그것과 별개로 스프링부트3부터 자바17을 인텔리제이 내에서 강제한 결과로, 버전 호환 문제가 상당히 많이 번거로웠습니다. 그래서 괜한 객기로 추가기능을 덧붙여 보려고 노력하기 보다, 기본에 충실하게 단순하게 따라하는 정석이 위 커리큘럼 해결에 도움이 된다는 것을 깨달았습니다. 그렇게 안되던 것이, 버전이 맞으면 잘돌아가는 것을 보고 허탈했기 때문입니다. 그러나 클린코드나 클린아키텍처 등에서 나중에 수정하는데, 이클립스와 비교하여, 리팩토링을 하는데 있어서 인텔리제이의 압도적인 성능을 보고 많은 영감을 받았습니다.
MyoungSoo7/coffee-shop-clone: 커피숍 주문 시스템(backend) (github.com)
[1] 과제 요구사항
첫 프로젝트를 마친후, 스프링부트3(자바17), 인텔리제이, JPA에 어느정도 익숙해지고, AWS에서 CI/CD, 모니터링,장애대응가지 다 잘 했습니다. 그러나 오픈소스에 들어가기에 앞서, 이런 것들은 부차적인 것이고 개발 방법론인 TDD에 대한 공부를 좀더 해야겠다고 싶었던 차에, 오픈소스외에 별도로 프로젝트를 주어 TDD를 공부할 수 있는 시간이 주어졌습니다. 그래서 계속 해서 TDD공부를 하게 되었습니다.
[2] 문제
저는 처음부터 끝까지 이석범 코치님에게 멘토링을 받았는데, 보통 한조에 평균 4명이 있었고, 팀원들이 대부분 바빴기 때문에, 네트워킹적인 효율이 효과적이지 않았고, 멘토링도 잘 안되었습니다. 그러다가 후반부에 거의 저 혼자 멘토링을 받게 된경우가 있었는데, 덕분에 한시간 동안 꿀빨면서 모니터링, 장애대응 관련 것을 미리 끝내고 나서 석범코치님의 깃헙에서 커피숍 관련 TDD를 하면서 TDD 및 Kafka를 배우고 있었습니다. 그러다가 2차 과제로 커피숍 요구사항이 나왔습니다. 그래서 저는 이미 끝난 것을 요구사항 정리하고 끝냈습니다. 그래서 멘토링 때 무엇을 해야하나 고민이 되었습니다.
[3] 해결
멘토링 때 석범코치님께 또 단독 멘토링 찬스가 와서, 이미 클론코딩으로 완성한 프로젝트를 물어볼 수 있었습니다. TDD에서 단위테스트 및 통합테스트가 다 이루어 질 수 있다는 것과 Container를 만들어서 상황 중립성을 유지한채로 github에 올라가는 것 등을 배웠습니다. 그리고 인텔리제이 내부에서 postman이나 erd 기능 등을 그릴 수 있고, mysql 과 mariadb설정 등 상세한 부분을 배울 수 있어서 좋았습니다.
그리고 개인적으로 추가 시간에 TDD를 비롯한 전반적인 시스템을 만드는데 있어서 학사관리 시스템에 적용해 볼 수 있는 시간이 주어졌습니다. 아래와 같은 커리큘럼에 따라서 프로젝트 만들고, 데이터모델링을 하고, API(Notion,Swagger)를 만들고 TDD로 구현해 볼 시간이 주어졌습니다. 그러다가 TDD가 생각보다 어려워서 여러가지 면에서 멘토링에서 도움을 받다가 책을 추천받고 수료후에도 계속 공부할 생각입니다.
4) 10주간의 과정을 통해 얻은 것
- AWS에서 자동화라인을 만드는 경험은 나름의 유익한 경험이었고, 수동배포 했던 지난날을 생각해보면 좀더 최적화된 시스템이라 체계적으로 될 수 있을것이라는 생각이 들었습니다.
- 오픈소스에는 직접적으로 참여하기 보다 TDD부분이 부족하여 TDD로 개발하는 것을 했는데, TDD가 장인정신에 입각한, 견고하고 탄탄한 코드를 만드는 것이라는 깨달음까지 도달한 것은 좋았지만, 그것을 위해 오픈소스에 참여하지 못한것은 아쉬웠습니다.
- 마지막으로, 커피숍시스템 이후에 학사관리 시스템을 이석범 코치님의 커리큘럼에 따라하면서 데이터모델링을 해보았는데, 설계적인 부분에 있어서 많은 부분이 고려할 것이 있다는 것을 배울수 있어서 좋았습니다. 특히, 설계가 반이라는 생각이 들었습니다.
5) 앞으로 더 도전해보고 싶은 것
- 이 항해플러스 백엔드3기를 하면서, 연구주제로 애플과 맥,TDD,데이터모델링에 대한 연구를 많이 할 수 있었고 개인적으로 제 자신의 커리어를 돌아볼 수 있었습니다. 처음에 독할을 할 까 하다가 항해플러스 멘토링이 상당히 기대되어서, 커리큘럼 따라가보자고 열심히 했는데, 여러가지 부담감(kotlin 이해력부족)에 좀더 효과적인, 멘토링을 못한 것 같아 아쉽습니다.
- 저는 경영학과 출신으로서 4차 산업혁명시기에 태어난 금융인 TossPayments가 좀 궁금해지기 시작했습니다. 하헌우 코치님이 그러고 보니 커리어상 토스페이먼츠에서 간편결제를 해보셨다고 합니다. 초반에 TDD및 공부방법론에 관해서 강의해주시기도 했는데, 프로게이머도 하고 계신다고 하는데 어떤 역할을 하신건지, 토스가 원체 일이 많고 바쁘다고 하는데 어떤 문화와 가치관을 가지고 있는지 궁금했습니다.
- 단순히, 4차산업 금융인 토스에 대한 궁금증으로 토스증권에 관심가지기에는 시기가 늦은것 같다는 생각은 들고, 개인적으로, 이번에 배운 모니터링 시스템에서 람다나 아니면 파이썬을 이용해서, 증권거래 부분 자동화 시스템을 재미삼아 구축을 어느정도 해보고 싶어졌습니다. 그리고 데이터분석과 같은 것들을 해보면 재밌겠다는 생각이 들었습니다.
-
6) 소감 및 항해 플러스를 고민하는 분들에게 한마디
- TDD/아키텍처 -> CI/CD/모니터링 -> 트래픽,데이터처리 요런식으로 커리큘럼이 4기부터 바뀌어 있습니다. 저도 이런식으로 공부했다면 더 나았을것 같은데 4기분들이 부럽습니다.
- 항해플러스 3기 중에는 비교적 슬랙을 통하여 수시로 공지 등을 보고 커리큘럼을 잘 따라갈 수 있습니다.(다른 말로는 자주 올라오면 빡쎄다는 뜻입니다...)
- 수강생들이 잡담방에 글들을 올라오면 코치진분들이 잘 답해주시기도 하고, 아고라는 취지도 좋고 의도도 좋은데, 저는 버전호환과 TDD에 정신이 빨려서 제대로 활용은 못한것 같습니다.
- 그 외에도 멘토님과 매니저님을 적극 활용하면 친절하게 답변해주시는 편이니, 잘 활용하면 좋은 것 같습니다.
- 여유가 되신다면 들어두시면 좋은 경험이 될 것 이라 생각합니다.
7) 지인 추천 제도 안내
- 지인추천제도는 이번 기수에 생긴것 같은데 지원페이지에서 유입경로에 추천코드 ' 7p7EDZ' 써주시면, 강의료가 20만원 할인 적용된다고 합니다.
- 많은 성원부탁드립니다. => 지원 페이지 > 서류합격시 결제페이지 하단 코드 > 7p7EDZ
프론트엔드 과정도 추가 되었는데
마찬가지로 지원 페이지 > 서류합격시 결제페이지 하단 코드 > 7p7EDZ
를 입력하시면 할인이 됩니다.
그럼 이상으로 항해플러스3기백엔드 과정을 마칩니다.
수고많으셨습니다.
코딩교육부분 브랜드대상에 빛나는~!
항해플러스 백엔드커리큘럼이 궁금하시다면
아래 클릭~!
IT 커리어 성장 코스 항해99 (spartacodingclub.kr)
추가로 AI 2기를 모집하고 있네요. 투자가 AI쪽에 쏠려 있어요. 우주에서는 AI가 무조건 필요할것 같습니다...
B612를 만들고 웹,앱에 이어 AI까지 손내미시는 남세동 대표님과 잡코리아AI 본부 임지홍 상무님도 참여하신다고 합니다.
AI유명 유투버 나동빈님과 포스텍 조승혁님이 커리큘럼 설계에 참여하셨군요.
'4차산업혁명의 일꾼 > Java&Spring웹개발과 서버 컴퓨터' 카테고리의 다른 글
HTML5 프로그래밍과 typora 그리고 git(readme.md) (0) | 2024.02.24 |
---|---|
jQuery 4.0 기습출시 (4) | 2024.02.18 |
개발바닥에 등장한 토비님을 보며 추억한 MVC (2) | 2024.02.13 |
tdd 맨땅에 해딩하기.. (0) | 2024.02.11 |
제이쿼리 기초 복습과 데이터의 호출에서 관리로 (4) | 2024.02.10 |