1년 동안 무얼 했느냐...

공상현 (Kong Sang Hyean)·2023년 12월 16일
1
post-thumbnail

시작하기 앞서

위 게시물은 2023년 개발자로서 1년간 활동하거나 노력한 내역을 나열한 게시물입니다.

1월

입사한 회사가 벡엔드를 주로 다루고 있어서 그 분야를 알아가기 위하여 NestJS 관련 책을 구입해서 스터디 및 백엔드 프로그래밍에 적응하였다.

  • 처음에는 해당 Doc 사이트에서 점차 공부할려고 하는데 책이 출간되어서 위 책을 구입하면서 배워갔다.
  • 해당 프레임워크에 적응하기 위하여 게시판 API 토이 프로젝트 만들었다.
    • 간단한 프로젝트라서 어떻게 디비와 연결해야하는지, 모델과 컨트롤러, 서비스에 대해 개념이 잡히는 시간이었던 것 같았다.

유데미에서 DevOps 강의 수강을 시작하였다.

  • 다른 강의 및 막 회사에 입사한 시기라서 다른 강의와는 다르게 천천히 수강하면서 4개월간 끝까지 들었던 것 같다.
  • 많이 활용하지 못하였지만 그래도 도커랑 쿠버네티스가 무엇인지 개념을 확실히 알아가는 기회였고 추후 위 분야에 관심을 가지게 되는 초석으로 자리잡게 되는 시간이었던 것 같다.

2월

NestJS를 이용하여 디스코드 봇을 제작하는 팀 프로젝트에 참가하였다.

  • 개인이 아닌 팀으로 진행하였기 때문에 기능을 개발할 때 마다 PR을 진행하였다.
  • 위 과정에서 개인으로 프로젝트를 진행하면서 알 수 없었던 것을 알아가게 되었다.
  • 추후에 프로젝트를 진행 할 때 개인이 아닌 팀으로 진행할려고 노력한 계기가 되었다.
  • 지인만 사용하는 선에서 운영이 되어서 4개월 정도 진행하였다.

Spring에 대해서 강의를 수강하였다.

  • 개인적으로 타입스크립트와 자바스크립트로 개발을 하는 것과 달리 회사 내에서는 자바와 스프링을 주로 사용하기 때문에 스프링에 주요 기능이 무엇인지 알아보기 위해 들어보게 되었다.

3월

풀스택 개발 용으로 질문을 물어보는 토이 프로젝트를 개발하였다.

  • 1,2월에 진행한 프로젝트와는 달리 모듈 내 서비스를 실행하기 전에 인터셉터 및 가드를 생성하는 것을 중정으로 개발을 진행하였다.
    • 가드, 인터셉터
    • 인증, 인가
    • 어노테이션 생성
  • 개인적으로 디비 설계도 진행하였다.
    • 기존에는 파이어베이스 호스팅만 이용하였는데 백엔드를 추가해야하니 알아본 것이 서버리스 서비스였다. 본격적으로 백엔드 API를 호출하는 것이 아닌 간단한 사이드 프로젝트로써 가끔 호출하는 방식이었기 때문이었다.

4월

알고리즘을 공부하였다.

  • 언어는 javascript로 진행하였다.
  • 예전에 특정 알고리즘을 풀었을 때가 아닌 여러 알고리즘들 중 한 두문제를 골라서 푸는 방식으로 진행하였다.
    • 2-3주 정도 진행하다가 업무 등으로 인하여 중단

5월

혼자 웹 페이지 하나를 설계 및 개발하였다.

  • 동기는 위 서비스를 이용하여 편리성을 증대했으면 좋겠다는 작은 생각으로 운영까지 진행했었다.
  • 예전처럼 하나의 파일에서 정하는 것이 아닌 모달 별로 나뉘어서 프론트 엔드 개발을 진행하였다.덕분에 화면을 개발할 때 좀 더 수월하게 진행 할 수 있었던 것 같다.
  • 의외로 표 편집 라이브러리를 선정하는 것이 어려웠었다. 특히 라이브러리를 선정한 직후 SSR이 지원되지 않는다는 소식을 접한 후 일부러 해당을 기능을 꺼서 어떻게든 돌아가게 만들었다.
  • 벡엔드 개발 같은 경우 처음에는 페이지 별로 개발을 진행하게 되다가 이름 혼동 및 어느 서비스를 호출하는 지에 대한 혼동으로 인하여 기능을 기준으로 크게 한번 리펙토링을 진행 한 적이 있었다. 리펙토링 한 결과 이전보다 코드 가독성이 향상된 경과를 보여주었다.
  • 백엔드랑 프론트엔드 연결같은 경우 프론트엔드 (Next.js) 내의 프록시 변환을 이용하여 벡엔드로 요청한 URI를 자동으로 변환하는 식으로 처리하였다.
    • 개발 및 운영에서 빌드 및 실행을 진행 할 때 서로 다른 포트번호로 각자 실행했기 떄문이다.

6월

Clean Code와 자료객체 책을 읽어보았다.

  • 회사 내 동료 분 한테 물어 보아서 한번 읽어보게 된 것 같다.
  • 이름이랑 함수 내 파라미터 같은 것이 인상적이었다.
  • 처음에는 이렇게 써야만 나중에 리펙토링항 떄 편하겠다고 생각이 들었지만 점차 시간이 지나게 되면서 꼭 이것 만 맹신하지 말고 다른 방향으로도 고려해야겠다는 생각이 들었었다.

개발이 완료 되어서 1달 간 개발한 서비스를 운영하였다.

  • PM2를 이용하였다.
  • 도메인 구입 같은 경우 CloudFlare를 통하여 도메인을 구입 후 연결 시켰다. 아무리 비싸도 1년 기준 치킨 반마리 값 정도 되는 가격이라서 가격 부담이 덜하였다고 생각이 든다.
  • 수동으로 배포를 진행했기 떄문에 추후 자동으로 배포 하는 방법을 알려하는 동기를 만들게 된 것 같다.
  • DB와 관련된 테스트를 진행하게 되면서 여러가지 유의사항을 알게 되었다.
  • 의외로 서버시간이랑 로컬시간이 달라서 애를 먹었던 기억이 있다.
    • 그래서 코드 내 시타를 하드코딩하여 문제를 해결하였디만 추후 개별적으로 운영을 진행할 때는 유동적으로 고려 해보아야겠다.

7월

Clean Code 책을 읽고 나서 리펙토링 분야에 관심이 생겨서 디자인 패턴 강의를 수강하였다.

  • 디자인 패턴 자체를 배우는 건 기사 자격증 취득 할 때 처음 배웠지만 종류만 암기하는 방식으로 배운 형식이라 실습을 해보면서 자세히 알아보는 방식은 이번이 처음이었다.
  • 위의 강의를 수강하게 되었지만 실전에서 자주 활용할 기회가 없어서 많이 아쉬웠었다. 그래도 추후 개발자들강의 대화를 진행하면서 서로 이해를 할 수 있게 만든 것 같았다.

8월

5월에 웹페이지 개발을 진행하면서 부족했던 부분을 찾아서 API 구현을 진행하였다.

  • 그 중 가장 수정한 서비스는 자동 크롤링을 이용한 방식에서 REST API를 활용한 방식으로 변경한 것을 꼽을 수 있다.
    • 그 결과 외부 라이브러리를 사용하지 않게 되어 해당 프로젝트의 사용 용량 및 메모리가 감소하였다.
    • 알고리즘을 이용하여 사용되는 서비스 소요시간도 단축시켰다.
  • 가드 및 인터셉터를 이용하여 서비스를 호출항 떄 마다 토큰을 검사하게 만드는 어노테이션도 개발하였다.

9월

자동으로 배포를 하기 위해서 CI/CD 일부와 Jenkins를 배웠다.

  • 조금 촉박한 시간으로 배웠던 터라 지나간 부분도 많았지만 어떻게 배포를 진행하게 되는지 알게 된 시간이었다.
  • 로컨 외에도 서버 프로바이더를 이용하여 배포를 진행하여서 서버 프로바이저 내의 서비스를 어떤 식으로 설계해 나아야하는지 알게 되었다.
  • 강의 교육을 듣고 나서 간단히 스벨트와 젠킨스를 이용한 페이지 배포를 실습하였다.

10월

스벨트를 배웠다.

  • 하지만 아직 공식문서만 훑어보는 단계에서 적응하기까지 시간이 걸릴 것만 같다.

기존의 포토폴리오 페이지를 갱신했다..

  • 활동이 많아짐에 따라 대표적으로 진행한 활동을 꼽아서 메인에 소개하고 나머지 부분은 세부 내역으로 소개하는 식으로 변경하였다.
    • 상세 내역같은 경우에는 수시로 변경될 것을 고려하여 따로 내용 파일을 제작하여 화면을 불러올 때 마크다운 식으로 읽게하는 방식으로 진행하였다.
  • 정보 갱신 뿐만 아니라 여러 UI를 수정해나갔다.
    • 특히 너비에 따라 간격만 달라지게 한 예전 방식과는 달리 특정 너비에 따라서 팝업이 활성화 되거나 보이지 않게 만드는 등 여러가지 변화를 주게 만들었다.
    • 기타 : 추후 컨퍼런스에 최대한 한번에 내용을 표시하라는 답변을 들어서 최대한 한번에 내역을 정리하는 식으로 수정해 나갈 것이다.

11월

카카오 채용 소식을 들어서 코딩 테스트를 위하여 알고리즘을 복습해나갔다.

  • 준비 기간이 2주 밖에 되지 않았기 떄문에 우선 알고리즘 별로 정리하고 내가 약하다고 생각되는 분야만 문제를 풀어가면서 연습하였다. 또한 작년에 나왔던 문제들도 참고해나갔다.
  • 시험 시간이 5시간이었지만 의외로 문제를 풀어가면서 의외로 시간이 빨리 지니간 감도 있었지 않나 생각이 든다.
  • 생각보다 아쉬운 시험이었다. 절반 정도 진행하였지만 만일 시간이 있었더라면 한 4개 정도는 완료 되지 않았을까 생각이 든다.

AWS 온라인 컨퍼런스를 수강하였다.

  • 추후에 서버 프로바이더를 활용할 때 어떤 서비스를 활용하면 좋을 지 알아보기 위해 수강하였다.
  • 그 중 가장 기억이 나는 것은 여러 서비스를 활용하여 이미지를 업로드하거나 불러오는 페이지를 만드는 실습이랑 트래픽에 따라 운영 서버를 자동으로 리다이렉트 해주는 엘라스틱 옵션을 실습해주는 점을 볼 수 있다.

운동을 시작하였다.

  • 건강검진의 결과로 혈압을 줄이기 위해 시작했는데 프로로 바뀐다면 무사히 들고 다닐 수 있도록 근육을 증진시킬 예정이다.

12월

Devfest 2023에 참여하였다.

  • 특정 분야의 주제보다 공통적인 분야에서 생각보다 많은 것을 배웠던 시간이었다.
    • 특히 소개란에서 관심 있었던 커리어 이직에 관해서 왜 내가 이직을 해야하는 지 확실한 이유를 갖게 해주는 계기가 되었다.
    • 의외로 개발자들끼지 그룹을 형성하여 활동하는 것이 중요하다는 것을 알게 되었다.
    • 해당 컨퍼런스 이후 GDG 디코 및 오픈소스 스터디 등등 여러 그룹 사이트에 들어가게 되었다.
    • 오픈소스 기여에 대해 관심을 갖게 되었다.

본격적으로 서비스를 제공하기 위한 팀 프로젝트를 시작하였다.

요약하자면...

  • 프론트엔드, 백엔드, 데브옵스 등 여러가지 방면으로 많은 강의를 들었던 것 같다.
    • 일부 강의는 여러 활동에 도움이 많아 되었지만 일부 같은 경우 많이 활요하지 못했던 것 같다.
    • 비록 모든 분야를 배우고 있기는 하지만 내년에는 한 분야를 강점으로 키워보아야겠다는 생각이 들었다.
  • 사내 업무 적응으로 인하여 자격증 취득 등 자기개발에 소홀히 한 경우도 있는 것 같다
  • 강의 및 프로젝트 진행 외에도 회사만의 서비스를 제공하는 회사에 들어가기 위해 기술 블로그, 오픈소스 기여 등 외부 활동을 적극적으로 진행해야겠다는 생각이 들었다.
profile
개발자 같은 거 합니다. 1인분 하는 개발자로서 살아갈려고 노력 중입니다.

0개의 댓글