안녕하세요. 어찌어찌 흘러서 유입된 뉴비입니다.
공지나 정보, 추천 글들은 대략 읽어보았고 여기분들의 철학에 많은 공감을 하였고 귀한 정보를 많이 얻었습니다.
그러던 중 몇 가지 고민이 있어서 글을 남겨봅니다.
각설하고, 제 상황을 설명드리겠습니다.
저는 프로그래밍 자체를 학습한지는 작년 10월부터 대략 10개월 정도 되었습니다.
10개월간 추천을 받아서 시험을 치고 들어가는 부트캠프에 운 좋게 합격하기도 했지만
같이 공부하는 분들과의 큰 격차를 느끼기도 했고, 자바 기본서 한 권 처음부터 끝까지 때지 못했던 상황이었고
(람다와 스트림과 옵셔너같은 자바 함수형프로그래밍을 아직 잘 다루지 못합니다.
또한, 멀티쓰레드 동기, 비동기 개념도 부족한 상황이고 네트워크 등도 기초가 많이 부족합니다.)
MVC도 모르는 채로 게시판을 구현해야하는지라.. 따라가기 급급하였습니다.
거기서 공부하고 학습하는 방향성이 옳다고는 생각하였지만 저의 기본기가 너무 부족해서 모래성을 쌓는 느낌을 받았고
이에 중도 퇴소하였습니다.
현재는 혼자 독학 중에 있는데 학습방향성 및 포트폴리오 구성에 있어서 의견을 좀 여쭙고 싶습니다.
전술하였듯, 기본기의 부족에의 갈증이 있었기에 기초공사를 다시 해보고 싶은 생각이 있습니다.
학습방향성이야 갤주분께서 작성해신 글처럼 3가지 대분류 갈래로 나눠서 해볼 생각이며
책과 강의와 같은 공부소재는 어느 정도 다 결정해놨습니다.
올해 12월 말까지 공부 해보고 싶은 계획은 일단 아래와 같습니다.
학습량이 워낙 많아서 가능할 지는 모르겠지만 어쨌든 다 해야하는 영역이라고 생각합니다.
1. 자바 / OOP
- 백기선 자바스터디(기본서 병행) -> (개구리책) -> 모던 자바 -> 오브젝트 ->
2. 스프링 - JPA
- 김영한님 강의(현재 수강 중) -> 토비 스프링 -> JPA 강의
3. CS(운체 , 네트워크, 자료구조, DB)
- DB -> 네트워크
(운체는 반효경 교수님 강의 책과 강의로 1회독 했으나 많이 휘발된 상태)
현재 제 상태는 부끄럽지만 CRUD는 간단히 어떻게 따라서 해볼수 있는 정도입니다.
기능은 아직 감을 못잡아서 '코드로 배우는 스프링부트 웹 프로젝트'라는 책을 기반으로
댓글기능과 파일업로드 부분은 학습을 해보고 있습니다.
또한, 테스트 코드는 많이 작성해본 경험이 없어서 잘 만들지 못하고 예외처리와 Validation 등은
아직 학습을 못해서 작성해본바가 없습니다.
학습할 것이 산더미인지라 포트폴리오는 후순위일 수도 있지만, 나이가 30인 까닭에
포트폴리오를 만들어보고 내년 초부터는 원서를 쓰면서 학습을 해보고 싶습니다.
(상황이 힘들다면 SI를 갈 수도있지만 가능한 서비스 기업 또는 솔루션을 희망합니다.)
현재는 포트폴리오라고 내세울만한 것이 없는데,
여기서 제 고민은 다음과 같습니다.
1. 포트폴리오를 JPA+ 스프링부트조합으로 해야 의미가 있는건지?
가령, MYBATIS + 스프링부트여도 괜찮은지?
(왜냐면, JPA까지 학습하고 난 후에 포트폴리오를 만드려면 해가 넘어갈 것 같아 그렇습니다.
현재 아직은 JPA는 학습을 제대로 해본바 없고 '스프링 부트3 백엔드 개발자되기'와 같은 책을 통해서
따라치기 해본 정도입니다. 사실 이 질문의 요지는 제가 나이가 조금 있는 까닭에 해가 넘어가면 적지 않은 나이기에 취업에 부담이 조금 되기때문입니다.)
2. 백엔드 포폴에서 프론트는 중요하지 않다고 하지만 기초적인 HTML, CSS, JS만을 학습하고
타임리프와 부트스트랩과 같은 것을 이용해서 이쁘지 않게 구축해도 상관 없는지?
3. 기획력, 내지는 차별성이 중요한게 아니라 포트폴리오 내에서 사용된 것들의 고민과 그 깊이가 중요한 것으로
알고있는데, 그런 맥락에선 쇼핑몰이든 단순 게시판이든 소재는 중요하지 않은건지?
4. OPEN API를 활용하여 배포까지 하는 포폴은 사이드포폴로는 의미가 과연 있는지?
이렇게 하는 포트폴리와 단순 게시판류의 포트폴리오와는 다를 수 있으나 이러한 차별성이
신입 포폴에서 이점이 있는 것인지..
(멘토링을 받고있는 것이 있는데, 멘토님께서 위와 같이 API를 이용하는 포트폴리오를 추천해주셨는데,
게시판도 화면 띄우는 것 이외에 예외나 검증을 제대로 처리못하는 제가 우선순위가 이것이 맞을지 좀 의문입니다.)
5. 위의 학습 계획은 더하거나 뺄 것이 없을지..
질문이 너무 길고 장황한데 답변 남겨주시면 큰 도움이 될 것 같습니다.
읽어주셔서 감사하고
다들 건강하세요!
1. 기술스택은 가고 싶은 회사에서 사용하는 것으로 구성하는 게 좋습니다. 기술블로그나 JD를 살펴보면 기술스택을 파악할 수 있습니다. 물론 파악할 수 없는 곳도 있고요. 본인이 가고 싶은 곳이 JPA를 사용한다면 JPA를, MyBatis를 사용한다면 MyBatis를 사용하여 포폴을 구성하시면 됩니다. 30에서 31이 된다고 회사에서 더 안 좋게 보진 않습니다. 2. 상관 없습니다. 예를 들어, API 서버를 만든다면 프론트 자체가 필요하지 않을 수도 있습니다.
3. 네, 내가 작성한 코드가 어떤 의도를 가지고 있는지, 왜 이런 기술을 사용했는지가 더 중요합니다. 예를 들어, 게시글이 100만건일 때 게시글 목록을 조회할 때 문제가 발생할 수 있습니다. 대용량 데이터에 대해 고민과 해결해본 경험이 있는 사람과 그냥 무지성으로 게시판을 만든 사람과는 차이가 있죠. 4. 개인적으로 단순히 외부 API를 사용하는 것도 게시판과 크게 다르지 않다고 생각합니다. 외부 API를 사용할 때 발생할 수 있는 문제들이 있습니다. timeout이 발생하거나 에러를 뱉으면 우리쪽에서는 어떻게 대응할거냐 등도 고려해야 하는데, 대부분 그냥 데이터를 가져오고 끝인 경우가 많더라고요.
상세한 답변 진심으로 감사합니다. 공부하는데 있어서 큰 도움이 될 것 같습니다. 진심으로 감사합니다.
현재도 잘하고 계신가요? 흘러흘러 이글을 보게되었네요. 저 또한 도움되었습니다 삭제 안해주셔서 감사해요 - dc App