이 글은 곧 동아리에 들어올 감자 10기(백엔드)를 위한 기초적인 글입니다.
먼저 제가 어떻게 개발을 시작했고, 어떻게 공부를 해왔는가에 대한 글을 어느정도 적어보려합니다.
저도 아직 많이 부족하지만 누군가에게는 도움이 되었으면 좋겠네요.
저의 시작은 마찬가지로 감자였습니다. 저는 대학교 3학년 3월 (2024년 3월)
감자동아리에 신청을 해서 들어왔고 스터디를 받았습니다. 대충 스터디는 종강전까지 했고
선배들이 잘 가르쳐주셨는데, 제가 그 당시에 동아리는 넣고 공부는 안하고 배짱이 스타일이라서
공부는 하지않았습니다. 부랴부랴 감자 주마다 나오는 과제만 설렁설렁하기 바빴습니다.
커리큘럼은 그대로, 백엔드가 무엇인지, JWT토큰에 대하여, ERD, DB에 대해였고
공부를 하지 않았던 저는 지피티가 코드 짜주면 조금 이해하고 갔는데, 지금의 제가 멘토였다면
공부 안하냐고 딱밤 한대 했을텐데요 코드를 보고 말이죠 , 그때 멘토 선배 형 누나들이 착하셔서
아무말 안하신거 같습니다. 여튼 저는 이렇게 놀다가 큰 사건을 마주합니다.
제가 감자에 들어오고 4개월뒤인 7월? 8월에 포테이톤이라고 하루 잠을 자지않고 한 포테이톤을
했는데 이때 제가 배포도 못하고, 코드도 제대로 못짜서 팀이 망해버린적이 있습니다.
프론트는 백엔드가 배포가 되지않아 진행이 전혀되지않고, 저도 코드를 짤 줄 모르니 이런 사달이
났습니다. (GPT라도 유료결제 할걸 그랬네요) 끝나고나서 아무도 뭐라고 하진 않았지만
저는 위기감을 느꼈습니다. 하는동안에도 너무 민폐이고, 끝나고 나서도 고개를 들지 못했고요
다음날에도 다다음날에도 너무 창피했습니다. 그 이후로 코드 공부와 배포 공부에 대해서 열심히
했습니다. 피해를 끼치지 않으려고요.
일단 저는 인프런 강의를 끊었습니다. 배포 강의 말입니다. 그리고 김영한의 자바도 끊었습니다.
배포는 이 강의였고 김영한 강의는 너무 유명해서 김영한만 쳐도 나옵니다.
물론 김영한은 자바 강의입니다.
이 강의로 일단 Jenkins, SonarCube, Tomcat , Ansible에 대한 기초적인걸 배웠습니다.
후에 저는 첫 프로젝트를 시작했어요.
Luview라는 프로젝트였습니다. 여기서 사용한 기술 스택은 보통
Spring boot, Redis, Docker, QueryDSL등등 뭐 더 있을것입니다. 아마도..
이렇게 사용을 했어요. 당연히 첫 프로젝트니까 흐름을 몰라서 많이 헤맸던 기억이 있네요.
지금 보니 처음 공부 할 때는 인터넷 강의나 유튜브등을 많이 참고했던거 같아요.
의견을 많이 내는것이 좋습니다. 만약 나보다 뛰어난 사람, 프로젝트 경험이 있는사람이 있어도
주눅들지말고 의견을 많이 내는것이 좋습니다. 의견을 내는것은 돈이 들지 않으니까요.
여튼 저의 의견은 그렇습니다.
보통 동아리끼리 할때는 잘 없습니다. 그래도 가끔 있을 수 있지만 이것은 많은 소통으로 해결해
나가셔야합니다. 답이 없습니다 이건 매일 일정을 공유하고 어느정도의 진도를 나갔는지
소통 하시는것이 중요합니다.
토이프로젝트의 경우는 대략 2달~6달입니다.
MVP(제품을 내놓을 수 있을정도의 상태)를 대략 토이프로젝트는 2달정도로 잡습니다.
첫프로젝트가 아니라면 이정도는 생각을 하고 계셔야한다는겁니다.
다른 동아리, 연합동아리를 가셔도 2달에서 3달사이로, 기간을 잡습니다.
생각보다 빡빡할 수 있지만, 해보면 생각보다 널널합니다..
이건 사람마다 모두 다르지만, 매주 데드라인을 완벽하게 지키시는것이 중요합니다.
소통이 매우 잘되어야하고 카톡은 매일매일 하시는걸 추천을 드립니다.
대충 1달정도는 설계를 잡으시는것이 좋고 후에 개발로 들어가시면 됩니다.
설계는 WBS, ERD, 유스케이스, 테스트케이스 등등이 있겠네요, 후에 개발은
자유롭게 데르라인을 정해가며 하시면 좋겠네요. 피그마도 물론 중요합니다.
웬만하면 디자이너를 에타에서 구해서 프로젝트의 질을 올리시는걸 추천드립니다.
공부는 각각 프레임워크의 언어가 중요하다고 봅니다. 스프링같은 경우는 자바가 중요하겠죠?
초반엔 영상을 많이 봤던거 같고 그 이후엔 책을 많이 봤네요.
최근 1년동안 제가 읽었던 강의와 책을 말씀드리고 옆에 중요도를 적어드릴게요.
5점 만점입니다.
김영한의 자바 초급~ 중급2 (4개) - 5
박재성의 Docker기초 강의 (1개) - 3
개발자라면 알아야할 레디스 기본 - 5
젠킨스를 이용한 CI/CD jekins 구축 - 4
실전 쿼리 DSL! - 5
실전! 스프링JPA 강의 (2개) - 4
자바 스프링 테스트코드를 추가하고싶은 개발자 - 5
자바 코딩테스트 입문 - 5
JPA-ORM - 5
강의는 최근 1년동안 이정도 본거 같네요. 모두 인프런 강의였고
아직 기억나는건 레디스는 재밌어서 앉아서 하루 날잡고 다 본 기억이 있습니다.
강의를 꼭 다 볼 필요는 없습니다. 저는 뽑자면 쿼리DSL, 테스트코드가 중요하다고 보네요.
클린 아키텍처 - 5
클린 코드 - 5
자바와 JUnit을 활용한 실용주의 단위 테스트 - 4
단위 테스트 - 5
이것이 자바다 (2권) - 5
이것이 취업을 위한 CS지식이다 - 5
토비의 스프링 - 5
개발자를 위한 레디스 - 5
모던 자바 인 액션 (읽는중) - 5인거같음
책은 최근 1년간 이정도 읽은 거 같네요
저는 지금은 책이 더 집중도 잘되고 정리도 더 잘 되는거 같아요 다시 돌릴 필요없이
그냥 읽으면 되니,, 당연히 코드를 100프로 다 흡수하지못했습니다 60프로만 해도 다행이죠
저의 경험으로는 지식을 늘리기엔 책만한게 없는 거 같습니다.
아! 가장 중요한건 남의 코드를 훔쳐보기입니다. 여러 사람들의 코드를 많이 훔쳐보세요.
대외동아리 깃허브는 열려있습니다. 그분들중에는 네이버나 카카오, 배민등이나 다른
현업자분들도 토이프로젝트를 참여해서 많이 코드를 짜십니다. 그분들의 코드를 보고,
아키텍처를 보고 리드미를 보고 영감을 받아서 좋은 코드를 짜시고 아닌 코드는 배제하시길
바랍니다. 자신의 프로젝트에 맞춰 잘 변형하시는것이 실력이고, 최적화를 잘 하시는것이
좋습니다.
올해 저는 열심히 달렸네요.
저는 24년 중순, 작년 8월엔, 코드를 아예 짜지 못하고 배포도 못했지만 올해 지금의 저는
한모라는 프로젝트로 직접 유저를 200명을 받고, 매칭을 시켰고, 기술블로그를 직접 만들어
지식을 공유할 수 있게 되었습니다.
아파치라는 프로젝트에 PR도 4번정도 날렸네요, 좋은 팁 하나 더는 실무를 조금 느끼고 싶다면
오픈소스를 하시는것을 추천드립니다. 오픈소스 경험으로 생각을 넓힐 수 있었네요.
저의 글이 도움이 되시길 바라며, 모두 열심히 공부하시길 바랍니다.
다른 선배들의 코드를 보고 다른 사람들의 코드를 보면서 AI도 잘 되어있으니 더 좋은 코드를
짜실 수 있으실거에요! 감사합니다.