개발자
안녕하세요 컴공과 4년제 졸업생 백엔드 개발자 희망하는 취준생입니다. 제로베이스 부트캠프와 독학 고민하다 독학을 해볼까 커리큘럼 계획 중인데 고민이 있어 글 작성 합니다. 1. 자바 언어(이것이 자바다 책), 코딩테스트(자바), CS지식(큰돌님 강의) 2. 김영한님 스프링 로드맵(기본 - mvc - db - jpa - 고급), 스프링 시큐리티(정수원님 강의) 추가적으로 상황이 된다면 redis, Jenkins, AWS 배포, 코드 리팩토링 등 이 순서로 공부를하면서 준비하려하는데 불 필요한 부분이 있다, 부트캠프가 더 효율적이다 등 다양한 조언 부탁드립니다..!! 카톡으로 조언해주셔도 좋습니다..! https://open.kakao.com/o/snOaa5wg
답변 2
인기 답변
이제 졸업하시니 고민이 참 많으시겠어요. 화이팅하시라는 말부터 드리고 저는 국비출신으로 시작해서 자리잡은 개발자입니다. 저의 경우가 반드시 옳은 것이 아니며, 저 또한 배움이 많이 필요한 사람이니, 그냥 이런 케이스도 있다 보시고, 참조하시면 될 것 같습니다. 작성하신 순서로 공부를 하시면 크게 무리는 없을 것으로 보입니다만, 최근 스프링 개발은 JPA(객체지향적 데이터 접근)가 많이 선호되고 면접에서도 많이 물어보시는 부분이지만, 이건 어디까지나 MyBatis(관계형 데이터베이스 최대한 활용)를 통한 SQL 매핑식 개발은 기본으로 가능할 것이라고 생각하고 물어보는 질문입니다. JPA를 통한 프로젝트나 단위기능제작이 마무리되면 Mybatis를 이용하는 식으로도 제작하시는 것이 좋을 것 같습니다. DB의 경우 통상적으로 소규모 프로젝트에서는 Mysql이 다수라고 생각되나, MSSQL, ORACLE, POSTGRE도 사용하는 경우가 상당히 있으니 주력 DB가 정해지고 해당 DB SQL에 많이 익숙해지시면 다른 환경도 한번씩 겪어보면 좋을 것 같습니다. 스프링 시큐리티는 자바개발자로서 면접관이 물어보는 가장 기본적인 질문입니다. OAuth2나 JWT를 이용한 접근방법과 사용자의 세션유지 시간 및 사용자 검증을 Interceptor와 함께 고려한다면 더할나위 없이 좋습니다. Redis는 사용자가 재사용량이 많은 데이터에 접근하는 경우에 대하여 서버의 부하를 줄여주기 위한 용도로 주로 사용하며 MSA식으로 개발된 프로젝트의 경우 Load할 데이터가 복잡하고 많지않다면 Cache만을 이용해 사용하여 서버의 리소스를 확보합니다. 이를 프로젝트의 필요한 부분에 넣는다면 큰 공부가 되실 것 같습니다. 개발자로써 Jenkins를 통한 CI/CD를 어느정도 필요한만큼 자유롭게 할 수 있다면 협업과 서버 및 프로젝트 유지관리에 도움이 되는 사람이라는 증거가 될 수 있습니다. 이 젠킨스를 사용할 때는 반드시 리눅스에 대한 최소한의 지식이 요구됩니다. 단순히 페이지나 찍는 코더는 아니라는 점을 부각시킬 수 있습니다. AWS EC2와 RDS, Certificate를 통해 이렇게 공부한 프로젝트를 배포할 줄 안다면 기본적으로 프로젝트 개발을 적어도 한 싸이클을 혼자 돌릴 수 있는 사람이 될 것입니다. 또한 이 과정에서 AWS 보안 그룹에 대한 접근 방법, 기본적인 서버 방화벽 등의 지식이 생길 수 있습니다. 해당 공부가 한 차례 끝나면 공부하신 기술을 책으로만 보지말고 반드시 의도한대로 작동되도록 구현해내는 단계가 가장 중요합니다. 구현하지 않으면 읽거나 메모한 내용은 아무짝에도 쓸모가 없습니다. 쓰다보니, 어느 하나 안 필요한것이 없는 것 같네요. 실무에 가면 많은 고민과 실패로 배울 부분을 미리 준비하시는 것 같아 좋은 개발자가 되실 것 같습니다. 화이팅하세요!
익명
작성자
2024년 06월 15일
정성스러운 답변 너무 감사드립니다!
호잇호이님이 남겨주신 의견에 많은 공감합니다. 저도 취준을 하면서 받았던 다양한 질문 중, 인상깊으면서도 킬러 문제였던 것은 동시성과 트러블슈팅, 아키텍팅 3가지 였습니다. 각 부분도 준비해보시면 면접 보실 때 도움이 많이 될 것 같아요 :) - 서버 내 동시성 (자바 싱글톤 & 동시성을 한 번 찾아보세요!) - DB 내 동시성 및 락 (대표적으로 트랜잭션 레벨) - 특정 API가 간헐적으로 장애가 발생할 때, 어떻게 트러블슈팅할 것인지? - 서비스 규모 성장에 따른 시스템 확장 과정 (보통 3티어 시작) 다만 조심스러운 것은 MSA 같은 트렌드한 기술입니다. 여러 가지 이유로 기술을 도입하겠지만, 특히 조직적인 관점에서 도입하는 기술인 경우 신입이 겪어보기 어렵기 때문이라서요. 이런 분야로 질문하면 참 답하기 곤란하곤 합니다. 이런 건 다른 기업들의 사례를 많이 찾아보는게 도움이 됐습니다. 특히 기술에서 한 발 물러나 협업, 돈, 비즈니스 성과 같은 관점에서 기술 도입을 바라보고, 해당 사례의 반례 들을 찾아보면서 시야를 발전시키는게 큰 도움이 됐네요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!