개발자
안녕하세요 현재 컴퓨터공학 재학 중인 4학년 입니다 선배 개발자님들께 몇 가지 여쭤보고 싶은 것이 있어 질문을 올립니다 1. 어떻게 준비해야하는지 모르겠습니다 현재 스프링을 공부하고 있습니다. 김영한 님의 스프링 강의를 들었고 현재 개인프로젝트를 하며 익히고 있습니다 하지만 개인프로젝트는 난이도가 너무 낮아 취업에 도움이 되지 않는다고 생각하고 다른 사람들의 프로젝트들에 비해 한참이 뒤떨어져셔 이걸 공부하는게 맞는가 하는 생각까지 듭니다... 아직 이렇다할 스펙이나 활동도 없는 상황입니다.... 그래서 취업에 도움이 되는 활동이나 취업을 위해 어떻게 준비하면 좋은지 조언을 얻고 싶습니다 2. 공부해야할 건 많은데 시간은 한정적이라 답답합니다 개발을 공부한지 얼마 되지 않아서 자바도 기초밖에 모르고, 자료구조나 알고리즘도 다시 공부해야하고, 스프링도 더 공부해야합니다 공부해야할 건 많은데 우선순위를 어떻게 둬야할지 모르겠습니다 모두 챙기려다 오히려 전부 애매하게 알게 될 것 같습니다 또 자바를 공부할 때 어떻게 공부해야 효율적인지 조언을 얻고 싶습니다 긴 글 읽어주셔서 감사합니다...
답변 1
프로젝트를 통해 배울 수 있는건 기술 뿐만 아니라, 다른 사람들과의 협업, 협업툴의 사용, 의견이 다른사람들과의 갈등을 통한 의견 조율, 남이 낸 아이디어를 구현하는 과정 그러한 것들을 배우실수 있습니다. 또한, 수준이 낮다고 하면 자체적으로 수준을 높일 상황을 찾으면 됩니다. spring 을 기반으로하는 web application을 기준으로 설명하면 bean들은 layer를 잘 지키고 있는지, 단순 SQL을 사용하고 있다면, JPA, QueryDSL 과 같은 기술을 써볼수도 있고, API를 만드실때 RESTful 한 API를 작성하고 있는지, 테스트 코드는 잘 작성되고 있는지, 클린코드 인지, 비효율적인 쿼리호출은 없는지, 로그인 방식은 spring security를 써봐도 좋고, DB 테이블들은 잘 정규화가 되었는지... 고려해야할게 엄청 많네요.... 이 모든것 혹은 그 이상을 고려해서 프로젝트를 하셨다면, 면접시에 할얘기가 많으므로 취업도 쉬울것 같네요. 그리고 요새 GPT가 잘되어있으니, 한번 추천을 받아보는것도 좋습니다. "spring 에서 로그인 기능을 session에 담아주고 있는데 혹시 더 나은 방식으로 구현할게 있을까?" java 공부는 개인적으로 jdk 버전별로 나온 기능들을 공부한뒤 의도적으로 써보는게 우선 언어로서 익히는 방법인거 같고... jvm을 익히는것도 도움이 될것같습니다. (기능, 동작방식) 자료구조 -> 딥하게 연구하는 회사가 아닌이상, 실제로 쓰는 자료구조는 set, list, map, queue 뭐 이런정도 입니다. 하물며 직접구현하는 케이스도 드물고 기본적인 jdk에 들어있는 클래스들을 사용하겠지요. 그 외의 것들은 "코딩테스트"를 위한 것이 보통일것 같습니다. 알고리즘 -> 이것 또한 딥하게 연구하여 새로운 기능을 만드는게 아닌이상 "코딩테스트", "면접"을 위한 질문이 되겠네요. 알고리즘을 직접 구현하는 것보다는 그게 구현되어있는 메소드를 사용하는게 보편적일것 같습니다. 스프링 -> 이것은 "면접", "과제", "실무" 에서 쓰일것 같습니다. 면접시에는 스프링의 여러 기능들과 동작방식에대해 물어볼것 같고, 과제로는 API하나 만들라는 과제에서 쓰인다던가... 실무는 스프링을 모르면 안되니까 어쩔수 없구요. 스프링은 java 기반의 스프링 사용하는 회사에 취직할 생각이시라면 필수로 공부하시고 자료구조는 엄청나게 공부할게 있나 싶네요? 일반적인 회사를 취직하는 입장이시라면, 정렬, 탐색 등과 같은 기본적인 알고리즘을 공부하셔서 면접에서 얘기를 하실줄 알아야 될꺼 같고, 코딩테스트를 보는 회사에 취직하시는 입장이라면, 그런 알고리즘을 코드로 구현하실줄 아셔야될것 같습니다.
익명
작성자
2023년 06월 20일
좋은 말씀 감사합니다!!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!