안녕하세요. 오랜만에 인사드립니다... aloe입니다.
블로그 포스팅을 꽤 오랫동안 쉬었습니다.. 정말 바쁜 2023년도를 보냈었는데
네 맞습니다 핑계입니다.. 다시 열심히 달려보려고 합니다.
두서없이 적었지만, 부족한 저의 글을 읽어 주실 분들에게 미리 감사드립니다.
누구에게 말하는 게 아닌 일기체로 작성하였습니다. 편하게 봐주셨으면 좋겠습니다.
블로그 포스팅을 자주 올리지는 못했지만. 많이 배우고 성장했던, 어느 분야의 개발자로 나아갈지 정했던 한 해였습니다.
2023년도를 돌아보며
학업적인 측면에서 잘한점
나는 컴퓨터 소프트웨어학과에 다니며 꽤 열심히 대학 생활을 했다.
20살 때 대학에 입학한 후로 목표는 하나였다. 돈 내고 학교 다니지 않기…. 수석으로 졸업해보기...
살면서 한 번도 1등을 해보지 못했기 때문에 막연하게 한 번이라도 해보자고 생각했던 거 같다.
운 좋게도 현재 그 목표는 이루면서 살고 있다. 수업이 재미있었다기보단. 배우고 싶은 학문이었고.
반 오십이 된 2024년도 기준으로 나의 가장 큰 장점이 성실함아닐지 생각해 본다..
머리가 좋은 편도 아니고 그냥 목표가 생기면 꾸준하게 나아가며 최고의 성과를 내려고 고민하는 게 내 장점이라고 생각한다.
그래서 아무튼 결과로써 성실함을 보여줄 수 있는 지표 하나를 완성하고 있다는 게 2023년도에 잘한 점이라고 생각한다.
학업적인 측면에서 부족했던점
컴퓨터공학, 소프트웨어학과 등등 개발자로 취업하는데 있어 전공자라는 타이틀을 달수는 있는 학과들이 있다.
나 역시 위에서 언급한 대로 해당 학부 생활을 꽤 열심히 했지만 해당 학과의 교과목을 잘한다고 좋은 개발자가 될 수 있나?,
좋은 회사에 취업할 수 있나? 이건 또 다른 이야기라고 생각한다. 물론 필요한 역량들은 맞다..
내가 하고 싶은 말은 취업을 하기 위한 공부 방법, 계획과 학점을 잘 받기 위한 공부 방법, 계획은 다르게 설계 해야 맞는다고 보는 것이다.
암튼 본론으로 다시 돌아와서
나의 학부 시절을 돌이켜보면 전공자 타이틀을 얻을 수 있는 학과들에서 얻을 수 있는 가장 큰 장점을 누리지 못했다. 해당 학부에서 얻을 수 있는 장점을 나열하면
- 소프트웨어 개발에 대한 전반적인 영역 찍먹 가능
- 선 후배 간 교류 가능
- CS 지식 학습 가능
뭐 크게 이 정도인 거 같다. 하지만 나는 너무 학점을 따는 데만 몰두 했었고 학부 친구, 선, 후배들과 코로나를 거치며 협업 개발,
스터디 등등 실질적인 개발을많이 못 해본 거 같다. 그래서 두려움이 컸다.
이대로 가다간 취업 시작에서 저 개발자인데요. 이력은 졸업장 밖에 없습니다…ㅎㅎ를 외치고 바로 탈락 +외면당할 게 뻔했으니까……
나는 뭘 개발할 수 있고, 뭘 잘하는 사람이지? 어떻게 어느 분야로 취업하지?
흠 일단 전공자 타이틀 학과(컴퓨터공학, 소프트웨어학과 등등)를 다니는 학부생들 80%는 이 생각을 하는 거 같다.
개발자는 개발을 하는 사람 즉 뭔가를 만드는 사람인데 전공지식이 개발을 하는데 도움을 줄 수 있지만 정작 뭔가를 만들 줄 모르는사람이라는 걸 깨달은 것이다. 그리하여 어느 분야를 깊게 공부(개발)를 해볼까? 하다가 어릴 때부터 아이폰만을 사용했고 애플을 좋아하기도 해서 맥북을 구매한 다음 iOS 개발을 본격적으로 하기 시작했다.
이전까지 6개월 동안 Flutter를 이용하여 앱 출시까지 하고 공모전도 나가보았기에 앱 쪽은 알 수 없는 근거 없는 자신감 ... 진입장벽이 낮다고 생각했다. (오만했다 매우 오만했다.)
iOS 개발 시작.
2023년도 1월부터 iOS 개발을 제대로 시작했다.
인생 첫 부트캠프 설레는 마음으로 공부를 시작했고 Swift 문법에 대하여 깊게 학습하고 UIKit으로 많은 앱을 만들어보며
실력을 향상할 수 있었다. 사실 말이 2개월 과정이지 앱 만들기 과정 그리고 복습을 포함하면 5개월 과정인 거 같다.
정말 재미있게 공부 했던 거 같다. 힘들긴 했지만, 덕분에 iOS 개발을 하는 좋은 동료들 또한 만날 수 있었다.
칼리, 미뉴, 코지 등등
부트캠프에서 잘한 점
아무래도 Swift 문법을 깊게 배우고, iOS 관련 지식과 나 이제 개발을 할 수 있다는 자신감을 얻을 수있었던 거거 같다.
이대로열심히 하면면 지성이면 감천이라고 취업에 길이 열리지 않을까?😂
근데 뭐 사실 취업도 취업이지만 에초에 해당 전공을 하게 된 이유가 머릿속에 생각나는 아이디어들을 바로바로 만들어
서비스를 해보고 싶었기 선택했던 거라 이제는 마음만 먹으면 구현할 수 있겠다는 자신감을 얻게 된 게 가장 크다고 생각한다.
(그래서 생각난 아이디어를 구현해 앱까지 출시했다…. 추후 회고 예정)
부트캠프에서 부족했던점
돌이켜보면 부족했던 점은 잘못된 공부 방법인 거 같다.
인터넷 강의는 좋고 질 좋은 정보를 제공한다. 하지만 내 것으로 만들기 위해 체득하는 과정이 필요하다고 느꼈다.
물론 기록을 노선에다가 하나하나 잘 정리하고 1일 1커밋 하면서 정리를 나름 하긴 했지만
개발 또한 영어, 불어 등등 마찬가지로 일단 Swift라는 언어를 배웠다면 실제로 써봐야 완전히 내 것이 된다는 걸 알았다.
나는 당시 다 외운다는 마인드로 접근하고 공부를 했다.
이것도 주관적인 생각이지만 어차피 개발을 하는 데 있어서 다 외울 수 없다. 부트캠프를 진행하면서 내가 했던 바보 같은 방법이다.
정말 다 외우려고 했다… 조금만 또다시 복습하지 않으면 까먹는 것을…
(내가 바보라 그런 걸 수 있다, 다양한 지식, 많은 정보… 개인마다 뇌라는 휘발성 메모리에 수용할 수 있는 양은 다르다고 생각한다)
그래서 많은 개발 학도들이 GitHub이라는 비휘발성 메모리 즉 실제 영구적인 저장장소에 저장하며 기록하는 거 같다.
블로그 포스팅도 마찬가지고…
그래서 바보 같은 실수를 한번 하고 공부 방법을 바꾼 게 기록하되 그 기록을 보고 다시 머릿속에서 끄집어낼 수 있을 정도로 설명하여
커밋을 남기거나 주석을 다는 것이었다.
요약 다 외우려말자, 필수적인 건 외우더라도 나중에 봤을 때 이해할 수 있게 설명해서 정리해 두자.
개선할 점
블로그 포스팅을 열심히 하자 그리고 글을 좀 더 잘 쓰도록 노력하자…
노션에 정리를 하거나 코드에 폭풍 주석을 때려 넣어서 그런지 나중에 봤을 때 이해할 수는 있지만 시간이 너무 많이 들었다.
해당 개념을 이해하고 있을 때는 글을 좀 대충 적는? 아무튼 그런 경향이 있는 거 같다.
2개월 3개월 뒤에 돌아왔을 때는 다시 모르는 사람에게 설명하듯이 글을 써 기록을 남기는 게 중요 한 거 같다.
그렇지 않으면 읽기 힘들고 애써 작성한 코드, 글들이 하나의 레거시 덩어리가 되어버려서 영영 보지 않게 될 수 있다.
그리하여 2024 목표는 블로그 포스팅이다.
인기 있는 블로그는 바라지도 않지만 내가 투자한 1시간~3시간의 포스팅이 3개월 뒤에 나에게, 혹은 다른 사람들의 시간을 5시간씩 절약한다고 했을 때 기대효과는 어마어마하다고 생각한다. 열심히 하자
클론코딩에 대하여
부트캠프가 끝난 후 포트폴리오용으로 추천받은 강의가 Twitter 클론 코딩 강의였다.
1개월 반 정도 들었던 거 같은데
클론 코딩을 하며 느낀 점이다. 클론 코딩의 장점은 해당 로직을 어떻게 구현할 수 있는지 볼 수 있다는 것이다.
여기서 포인트는 “단지 볼 수 있다는 것”..
클론 코딩강의를 들으면 나도 이런 서비스쯤은 이제 바로 만들 수 있겠다!! 라는 생각을 했었는데 (오만했다 매우 오만했다.)
장점이라고 생각하는 점
일단 현재 출시된 유명한 앱을 따라 만들어 보며 어떻게 구현하였는지 똑같지는 않겠지만 대략 이해할 수 있었다.
최근 육각형 개발자라는 책을 읽었는데 좋은 글이 있었다.
“개발은 코드를 짜는 거뿐만 아니라 서비스를 설계하고, 출시 했다면 유지보수 등등 이 일련의 과정 전체가 개발이라는 것”
이게 클론 코딩에서 얻는 가장 큰 장점이라고 생각한다. 설계 단계부터 구현 단계까지 공부할 수 있다.
그런 의미에서 보면 많이 배웠던 거 같다. MVVM 패턴을 활용하여 UIKit으로 어떻게 프로젝트를 하는지, 또는 설계할 수 있는지,
Firebase는 어떻게 사용할 수 있는지 등등 다만 부트캠프에서 했던 실수를 반복하고 싶지는 않아서
구현 로직을 외우지는 않고 참고 정도로 기록만 해두었다.
(어떤 순서로 구현했는지, 어떻게 리팩토링했는지 중점 개념과 포인트 위주로 기록하였다.)
단점, 개선할점
내 것이 아니다.
가장 크게 느낀 게 클론 코딩은 개발자로 살아가는 데 있어 자력이 사라지는 거 같다.
즉 뭔가를 만들어야 할 때
- 비슷한 클론 코딩 강의가 있는지 찾는다.
- 강의를 구매해서 강의를 다 듣는다.
- 내가 만들고 싶은 서비스를 구현한다.
물론 이것 또한 개발하는 하나의 과정이라고 볼 수 있다. 당시 나처럼 뭘 개발해야 할지 모르겠고, 아이디어는 있지만 어떻게 개발할지
감이 안 올 때, 초심자의 입장에서는 클론 코딩을 추천한다. 하지만 이게반복되면 안 될 거 같다.. 위에 언급한 로직은 내가 이후에 한 실수다. 단지 따로 시간 내서 공부하는 게 귀찮고, 몸도 마음도 편하니까…
클론 코딩을 또 들을지는 모르겠지만 (나중에 정말 필요하다면 듣겠지만)
내가 생각하는 클론 코딩 == “가이드라인을 알려줬으니 이제 네가 생각하는 걸 만들어~”
이렇게 접근하는 게 맞는 거 같다. 클론 코딩을 듣더라도 여기서 끝내지 말고 내 것을 만들어보자.
또 한번의 부트캠프 멋쟁이사자(테킷 앱 스쿨 : iOS 3기)
앨런 부트캠프는 iOS 개발 기준으로 Swift 문법과 UIKit 프레임워크를 활용한 개발에 대하여 초점을 맞춰 알려줬다.
하지만 SwiftUI는 따로 배워야 했고. 이글의 서두에서 언급했듯이 필요하다고 느꼈던 협업 개발을 해보지 못했다.
그래서 SwiftUI를 배워보고 싶었고 협업 개발을 해보고 싶어서 멋쟁이 사자(테킷 앱 스쿨 : iOS 3기 ) 지원했다. 아무튼… 합격했다.
여담으로 당시 apple 디벨로퍼 아카데미에도 지원하였는데 하반기 모집에서 떨어졌고 상반기 모집에서 바보 같이 코로나에 걸려 드러눕는 바람에 테스트를 응시조차 하지 못했다. (열심히 라이프 저니 작성도 했는데) 근데 이것 또한 운명이라 생각하고 받아들였다.
잘한 점, 장점 ing
SwiftUI로 개발하는 것이 익숙해졌다. 사실 과정을 진행하면서 SwiftUI를 따로 더 학습해서 그런 것도 있는 거 같다. 그리고 그토록 해보고 싶던 협업 프로젝트를 한 번 정도 진행하였는데 git 컨벤션, git Flow 전략, 노션을 통한 워크스페이스 관리, 기획 단계의 MVP 설계 등등 여러 개발자가 공통의 목표(프로젝트)를 위해 협업 개발을 어떻게 할 수 있는지, 어떻게 효율적으로 작업 할 수 있는지를 알아갈 수 있었다. 같은 팀에 현업에서 개발하다 오신 분이 3분이나 있어서 특별한 경험을 했던 거 같다. 많이 배웠습니다. 정말 ㅠㅠ 아무튼 그렇게 첫 프로젝트를 마무리했다. 1주일이라는 시간밖에 없어서 너무 급하게 했지만, 충분히 보람 있었다.
https://github.com/APP-iOS3rd/PJ2T1_WeatherPlaylist
부족한 점, 개선할 점 ing
기술적으로 내가 부족하다는 게 많다는 걸 느꼈다. 그리고 git이 완벽하게 익숙하지 않다 보니 branch를 merge하는 과정에서
conflict가 많이 일어났고, 코드 리뷰를 겪어보며 내 코드가 얼마나 지저분하고 스파게티 코드인지 알 수 있었다.
코드 리뷰… 받는 것, 하는 것 둘 다 아직 필자가 아주 부족해서 시험시간 5분 전처럼 떨리는 마음으로 임하고 있다.
그렇지만 조금 더 자주 해야 할 거 같다. 배우는 게 정말 너무 많은 시간인 거 같다.
추후에 최적화에 대하여 학습해 보고 Clean Architecture를 꼭 한번 읽어봐야겠다.
이 경험 덕분에 현재는 짬짬이 Clean Code라는 책을 읽게 되었다.
멋사가 끝나면 전체적인 회고를 한 번 더 해서 포스팅하겠다.
다음 회고 이야기
드디어 내 것을 만들다, 앱 출시 회고
Google Career Certificates 프로그램 선발, 후기