자바 서블릿
만 이용해서 웹 어플리케이션을 개발하는 방법을 배웠다. 전제는 풀스택
개발이었으며 자바
와 JSP
를 활용한 서버 사이드 렌더링 방식이었다. 기본적인 회원관리와 게시판 CRUD 기능을 가진 웹 사이트
를 만들어 보았다.처음으로 진행한 웹 개발 프로젝트였다. 그래서 진행과정에서 실수도 많았고 간단한 기능을 구현하는 데에도 오래 걸렸지만 기획했던 기능을 모두 구현했을 때엔 뿌듯함이 컸다.
회원가입 기능을 구현할 때 네이버 클라우드의 OpenAPI인 SENS API
를 사용해서 SMS 인증 기능을 구현했다.
당시 개발과정을 담은 글 : https://miro7923.github.io/project%20log/cafe-project-06/
이 때엔 OpenAPI에 대한 소문을 듣기만 했지 실제로 사용해 본 것은 처음이었기 때문에 문서를 보는 것 조차도 쉽지 않았다. API 가이드 문서를 처음 봤을 때의 심정은 뭐라는 거지?
그래서 구글에 있는 여러 블로그 글을 통해 실제 코드에서 요청과 응답을 어떻게 보내고 받는지 참고해가며 구현했다. 이 자리를 빌어 코드를 공개해 주신 모든 분들께 감사드립니다... 초보는 실제 코드를 따라 쓰는 것이 최고니까!
솔직히 처음에는 API 공식 문서가 한글로 쓰여졌음에도 해독하는 느낌이라 잘 보지 않고 구글링을 통해 블로그 글들을 참고했었으나, 그 블로그 글 마다 공식 문서 링크를 꼭 걸어놓았기 때문에 이유가 있겠지 싶어 API 사용 중 궁금한 점이 생기면 공식 문서를 먼저 읽은 다음에 구글링을 하는 습관을 들이도록 노력했다.
그 결과 지금은 OpenAPI를 사용할 일이 있으면 블로그 글은 거의 안 보고 공식 문서를 주로 참고한다. 위의 과정을 거치면서 가장 정확한 것은 공식 문서
라는 것을 깨달았다.
스프링 프레임워크가 나온 배경
을 알 수 있었다. 운영체제
, 네트워크
, 컴퓨터구조
, 데이터베이스
등 컴퓨터 공학부에서 배우는 전공강의를 수강하기 시작했다. 추천 사이트 : 운영체제 - 이화여자대학교
당시 공부했던 내용 정리한 Github : https://github.com/miro7923/TIL
첫 번째 과제가 끝나고 난 후 드디어 스프링 프레임워크
를 배우기 시작했다.
이클립스의 STS 4(Spring Tools Suite)를 IDE로 사용했는데, Spring Legacy Project를 구동시키기 위해서 STS 3 버전의 플러그인들을 설치해서 쓰는.. 형태였다. 아무래도 국비 수업이고 대다수의 SI회사에서는 레거시가 기반이라 그랬던 것일까? 오히려 저렇게 끼워맞추는 개발환경 세팅을 하는 데에 시간이 더 오래 걸렸던 것으로 기억한다.
그래도 막상 스프링을 배우기 시작하니까 이전에 겪었던, 한땀한땀 작성하는 시절에 비해서 작성할 중복 코드가 줄어들어 생산성이 대폭 향상 되는 것을 느꼈다. 보다 비즈니스 로직에 집중할 수 있달까? 나보다 앞서 경험한 사람들이 이미 다 만들어 놓았고 나는 그냥 쓰면 되는구나...
스프링을 어느 정도 배운 뒤 팀 프로젝트
를 진행했다. 6명이서 마켓컬리를 모티브로 한 식자재 쇼핑몰
을 제작하기로 했다.
Github : https://github.com/miro7923/Uno-Mas
팀장
을 맡게 되어 데이터베이스 설계
를 진행했는데 이 과정에서 얻은 것이 정말 많았다. 단순한 CRUD 기능을 담은 게시판을 만들 때보다 훨씬 많아진 데이터들의 연관관계
를 설정하는 것이 생각보다 쉽지 않았다. ERD 다이어그램을 그리며 테이블 간 관계를 정의하고 데이터베이스 수업에서 예제로 따라 써 보기만 하고 넘어갔던 SQL 문법을 사용해서 제약조건을 걸어 테이블을 생성해 보면서 RDBMS에 대한 이해도를 높일 수 있었다. 그리고 무엇보다도 프로젝트 자체에 대한 이해도가 높아졌다. 데이터 흐름이 어떻게 되어야 하는지 보이니까 홈페이지에 어떤 기능들이 필요할 지 보이고 그러니까 프론트엔드와 백엔드를 어떻게 설계해야 할 지도 보였다.