안녕하세요
개발자가 되기 위해 약 10개월정도 준비한 신입입니다. 지금도 여전히 열심히 공부하고 있습니다.
비전공자라 가장 문턱이 낮아보이는 SI업체에 가기위해 정처기와 필요한 기술을 같이 공부해왔습니다.
학원은 여러이유로 가질 않았고 처음부터 모든 것을 독학으로 준비한거라 많이 부족하지만,
제가 신입개발자가 될 수 있는 조건, 취업을 할 수 있는 조건이 됐는지 궁금해서 질문 올립니다.
(혼자라 어디 물어볼 곳도 없고, 도움 받을 곳도 없습니다..ㅠ선배님들 의견이 듣고 싶습니다.)
정처기는 합격했습니다.
기술적인 부분이 제일 궁금한데,
일단 제 목표는 Spring Boot로 게시판을 만드는 것이었고, 이를 위해 다음 것들을 공부해왔습니다.
HTML/CSS : 태그형식을 암기하고 있진 않지만, 읽을 수 있고, 작동원리를 이해하고 있으며, 기본적인 form, table은 인터넷에서 태그만 검색해서 만들 수 있는 정도. 공부의 비중이 많지는 않았고, 서버단과 get post로 데이터를 주고 받기 위한 지식은 있습니다. (action이나 form태그의 method, input태그의 value나 name 등)
Java : 제일 처음부터 공부했고 순차적인프로그래밍-->구조적프로그래밍-->객체지향프로그래밍 순으로 공부하면서 기본문법(조건절, 반복절, 배열, 컬렉션)같은 건 잘 이해하고 있으며 인터페이스, 상속, 추상메소드, 오버로드/오버라이딩 등 개념들에 대해 잘 이해하고 있습니다. 스프링으로 게시판을 만들때 이러한 개념들도 잘 쓰고 있습니다.
JSP/Servlet : MVC할 때 공부했는데 공부라기 보다는 html파일을 jsp파일로 바꿔 쓰는 정도이고, 컨트롤러에서 model에 addAttribute한 것을 JSTL을 같이 사용하여 foreach나 c:set 같이 간단하게 구현한 정도입니다.
Tiles : JSP파일들을 공통부분을 나눠 tiles.xml로 조합하는 것. 컨트롤러와 tiles.xml연결하는 것 정도 알고 있습니다.
MySQL, OracleDB : 처음에는 OracleDB로, 나중에 Spring Boot할 때는 MySQL을 썼습니다. 게시판 구현을 위한 테이블 세팅(기본값이나 Not Null설정등)과 SQL구문 테스트(CRUD) 그리고 뷰 생성 정도 해봤고, MySQL은 관계설정 정도까지 해봤습니다.
Spring : Boot를 사용하기 전에는 dispatcher-servlet.xml에 Dependency Injection을 하면서 MVC방식으로 게시판을 만들었고,
Maven : 메이븐을 같이 사용해서 pom.xml에 dependency 추가, global Repository사용하여 추가 정도 알고 있습니다.
Spring Boot : xml방식은 안하고 Annotation만 사용해서 만들었고, 컨트롤러--서비스--DAO로 나누어서 MyBatis와 함께 구현했습니다. 서비스와 DAO는 인터페이스를 먼저 만들고(팀작업고려) 구현체를 나중에 만들어서 연결했습니다.
정리해보면 사용해본 것들은
HTML/CSS, JAVA, JSP/Servlet, JSTL, Tiles, MySQL, OracleDB, Spring, Spring Boot, MyBatis, Maven 정도입니다.
(앞으로 공부해야할 것은 Thymleaf, security부분, 로그인 정도이고 그 이후는 아직 계획이 없습니다.)
게시판은 동일한 HTML/CSS파일로 MVC방식으로 다른 방법 2가지 정도로 해봤습니다.
게시판에는 검색기능(제목/작성자), 관리자용(선택공개/선택삭제/글쓰기), 글쓰기, 수정, 삭제, 댓글갯수 보이기, 페이지(이전/다음) 정도 구현했습니다.
쓰다보니, 제가 구현한 방법에 대해 나열한 것 같네요.. 공부를 했다기 보단 이러이러한 것을 사용했습니다 인 것 같고...여튼 위에 제가 쓴 내용들은 작동원리도 이해하고 있고, 방법도 숙지하고 있습니다.
만들어놓은 게시판도 잘 작동하고 있구요.
많이 부족한 것도 알고 있고, 계속해서 공부해야하는 것도 알지만 하루라도 빨리 취업부터 해서 경력을 쌓고 싶습니다. 요즘 이력서와 자소서 준비하면서 문득문득 현타가 오는데 아무래도 비전공에 준비기간도 짧다보니 너무 한게 없어 보여서 그런 것 같습니다. 선배님들이 보시기에 이정도면 취업문은 두들길 수 있다고 보시나요? 많은 조언 부탁드리겠습니다.
전공자나 교육 수료자도 님이 하신것에 대해 질문 던지면 대답 못하는 경우를 많이 봤으니까요..
다만 현장에서는 기술 영역의 구분 범위(UI, 네트워크, DB 등등) 또는
업우 영역의 구분 범위(생산, 물류, 회계 등등)에 대한 경험 유무를 요구 하는 경우가 많습니다..
뭐~ 이런건 현장이 아니면 경험 할 수 없기 때문에 경력직을 선호하는 이유가 되지만..
사실 신입에겐 가혹하기 짝이 없는 이야기가 되겠죠...
이를 조금이나마 피하기 위한 조언을 드리자면 기술이나 업무 영역에 대해..
범용적 기술 보다 전문화 된 방향을 설정하고 학습하는 것이 취업에 도움이 되지 않을까 생각합니다..