개발자가 되기까지: 2022년에 했던 것들 상세

Sia Hwang·2022년 12월 1일
1

My Dev Log

목록 보기
3/4

What I learned?

  • Java, Spring framework, MVC, JSP, JDBC, MyBatis, MySQL, Oracle SQL, Maven, HTML5/CSS, JavaScript, jQuery, Android(조금), Linux(조금)을 배웠다.
  • 기술 스택에서 알 수 있듯이 웹 개발의 레거시다.

What I did? - Basic 1

  • 처음에는 스프링 프레임워크 없이 자바 서블릿만 이용해서 웹 어플리케이션을 개발하는 방법을 배웠다. 전제는 풀스택 개발이었으며 자바JSP를 활용한 서버 사이드 렌더링 방식이었다.
  • 자바단에서 요청 받은 URL 주소를 파싱한 후 그에 따른 분기처리를 일일이 작성해 줘야 했는데... 이 과정에서 고대 개발자들이 힘들게 서버를 개발했다는 것을 알 수 있었다. 이걸 배우면서 과제로 기본적인 회원관리와 게시판 CRUD 기능을 가진 웹 사이트를 만들어 보았다.

Github : https://github.com/miro7923/Project-Cafe

  • 처음으로 진행한 웹 개발 프로젝트였다. 그래서 진행과정에서 실수도 많았고 간단한 기능을 구현하는 데에도 오래 걸렸지만 기획했던 기능을 모두 구현했을 때엔 뿌듯함이 컸다.

  • 회원가입 기능을 구현할 때 네이버 클라우드의 OpenAPI인 SENS API를 사용해서 SMS 인증 기능을 구현했다.

    당시 개발과정을 담은 글 : https://miro7923.github.io/project%20log/cafe-project-06/

  • 이 때엔 OpenAPI에 대한 소문을 듣기만 했지 실제로 사용해 본 것은 처음이었기 때문에 문서를 보는 것 조차도 쉽지 않았다. API 가이드 문서를 처음 봤을 때의 심정은 뭐라는 거지?

  • 그래서 구글에 있는 여러 블로그 글을 통해 실제 코드에서 요청과 응답을 어떻게 보내고 받는지 참고해가며 구현했다. 이 자리를 빌어 코드를 공개해 주신 모든 분들께 감사드립니다... 초보는 실제 코드를 따라 쓰는 것이 최고니까!

  • 솔직히 처음에는 API 공식 문서가 한글로 쓰여졌음에도 해독하는 느낌이라 잘 보지 않고 구글링을 통해 블로그 글들을 참고했었으나, 그 블로그 글 마다 공식 문서 링크를 꼭 걸어놓았기 때문에 이유가 있겠지 싶어 API 사용 중 궁금한 점이 생기면 공식 문서를 먼저 읽은 다음에 구글링을 하는 습관을 들이도록 노력했다.

  • 그 결과 지금은 OpenAPI를 사용할 일이 있으면 블로그 글은 거의 안 보고 공식 문서를 주로 참고한다. 위의 과정을 거치면서 가장 정확한 것은 공식 문서라는 것을 깨달았다.

What I earned in this process?

  • 웹 개발의 고대 레거시를 경험해 보며 스프링 프레임워크가 나온 배경을 알 수 있었다.
  • CS 공부의 필요성을 느끼고 운영체제, 네트워크, 컴퓨터구조, 데이터베이스 등 컴퓨터 공학부에서 배우는 전공강의를 수강하기 시작했다.

    추천 사이트 : 운영체제 - 이화여자대학교

  • 위 사이트에 가면 여러 대학교에서 공개한 전공강의들을 무료로 볼 수 있다. 리뷰수가 많으면서 평점이 좋은 강의를 골라 들으면 대체로 실패하지 않았다.
  • 확실히 CS 공부를 하니까 웹 개발의 매커니즘이 이해가 잘 되었다. 오히려 나의 원래 전공 공부보다 훨씬 재밌었는데 애초에 컴퓨터 공학을 전공할 걸 그랬다는 생각이 들었다.

    당시 공부했던 내용 정리한 Github : https://github.com/miro7923/TIL

What I did? - Basic 2

  • 첫 번째 과제가 끝나고 난 후 드디어 스프링 프레임워크를 배우기 시작했다.

  • 이클립스의 STS 4(Spring Tools Suite)를 IDE로 사용했는데, Spring Legacy Project를 구동시키기 위해서 STS 3 버전의 플러그인들을 설치해서 쓰는.. 형태였다. 아무래도 국비 수업이고 대다수의 SI회사에서는 레거시가 기반이라 그랬던 것일까? 오히려 저렇게 끼워맞추는 개발환경 세팅을 하는 데에 시간이 더 오래 걸렸던 것으로 기억한다.

  • 그래도 막상 스프링을 배우기 시작하니까 이전에 겪었던, 한땀한땀 작성하는 시절에 비해서 작성할 중복 코드가 줄어들어 생산성이 대폭 향상 되는 것을 느꼈다. 보다 비즈니스 로직에 집중할 수 있달까? 나보다 앞서 경험한 사람들이 이미 다 만들어 놓았고 나는 그냥 쓰면 되는구나...

  • 스프링을 어느 정도 배운 뒤 팀 프로젝트를 진행했다. 6명이서 마켓컬리를 모티브로 한 식자재 쇼핑몰을 제작하기로 했다.

Github : https://github.com/miro7923/Uno-Mas

  • 당시 팀장을 맡게 되어 데이터베이스 설계를 진행했는데 이 과정에서 얻은 것이 정말 많았다. 단순한 CRUD 기능을 담은 게시판을 만들 때보다 훨씬 많아진 데이터들의 연관관계를 설정하는 것이 생각보다 쉽지 않았다. ERD 다이어그램을 그리며 테이블 간 관계를 정의하고 데이터베이스 수업에서 예제로 따라 써 보기만 하고 넘어갔던 SQL 문법을 사용해서 제약조건을 걸어 테이블을 생성해 보면서 RDBMS에 대한 이해도를 높일 수 있었다. 그리고 무엇보다도 프로젝트 자체에 대한 이해도가 높아졌다. 데이터 흐름이 어떻게 되어야 하는지 보이니까 홈페이지에 어떤 기능들이 필요할 지 보이고 그러니까 프론트엔드와 백엔드를 어떻게 설계해야 할 지도 보였다.
profile
당면한 문제는 끝까지 해결하기 위해 노력하는 주니어 개발자입니다.

0개의 댓글