HiDevelop

2023년 인턴의 회고 본문

심심한 나의 이야기

2023년 인턴의 회고

꽃달린감나무 2023. 12. 18. 13:52
728x90

2023년의 마지막 달의 중순에 접어 들었다. 올해를 마무리하면서, 인턴 기간동안 겪었던 이야기들을 정리해볼까 한다.

인턴의 시작

2023년 하반기 대학교에서 진행하는 장기현장실습(IPP)로 신재생에너지 모니터링 어플리케이션을 서비스하는 회사로 입사하게되었다.

 

입사 첫 당시 간단한 게시판 만들기 프로젝트를 만들고, 개발 팀장님과 면담을 진행헀다.

면담내용은 ERD 설계, 어플리케이션 서버 구현/운영 경험(당연힌 구현경험은 있지만, 운영경험은 없었다..ㅠ), 배포 등 서버를 구현하는데 필요했던 기술들에 대해 물어보셨다. 나는 내가 아는 선에서 배포했던 방식과 어떤 식으로 구현했는지에 말씀 드렸다.

 

이야기를 들으시고는 , 현재 회사는 주로 정부에서 주는 신재생에너지 사업을 맡아서 하는 회사였는데, 이번에 민간 태양광 어플리케이션 서비스를 만들고싶은데 인력이 부족하여, 혹시 혼자 서버를 구현해 볼 수 있겠냐 라고 물으셨고, 기간과 어느 정도의 도움을 주시면, 가능할 것 같다고 말씀 드렸다.

 

그리고, 나는 "오늘해" 담당 서버 개발자를 담당하게 되었다.

 

07월 (화면설계, 기능 정의)

오늘해를 만들기 전 총괄은 맡은 신 부팀장님과 프론트엔드 개발자와 요구사항과 화면설계를 진행했다. 거의 대부분을 회의 하면서 사용자들이 원하는 기능을 정의하고, 이를 어떻게 사용자들에게 보여줄지에 대하여 화면설게를 진행하였다. 나는 노션을 통해 사용자들이 원하는 기능이 무엇인지 정의하였고, 이를 사용자들에게 어떻 게 보여줄 지에 대하여 피그마를 통해 화면설계를 진행했다.

 

08월 (ERD 설계와 테이블 생성 및 관계 구현)

  화면설계와 요구사항이 끝나고 난 뒤, 나에겐 주어진 임무는 ERD 설계였다. 나는 태양광에 대한 도메인 지식이 없었다. 그런 나에게 ERD 설계라니..ㅠㅠ, 하지만 하늘이 무너져도 쏟아날 구멍은 있다하지 않았나. 기존의 회사에 진행중이었던 신재생 모니터링 어플리케이션의 DB구조를 참고할 수 있게되었다. 

 

20개 정도 되는 테이블과 400~500개정도 되는 컬럼들을 분석하며 08월의 반을 보낸 것 같다. 잘 이해가 되지 않는 테이블이나 용도를 모르는 컬럼은 선배 개발자분들에게 집요하게 물어보면서. 어떤 역할을 하는지, 존재이유는 뭔지를 차근차근 정리해나갔다. 심지어 데이터를 수집하는 쪽 테이블들은 모르신 분이 많아서, 수집 서버 담당 팀장님에게 가서 물어보았다.(자리에 잘 없으셔서 오매불망 기달렸던 것 같다.)

 

 

그렇게 "오늘해"에 필요로 하는 컬럼은 남기고 필요로 하지않은 컬럼과 테이블들은 제거하고 ERD를 설계했다. 마지막으로 부팀장님한테 컨펌(컨펌을 진행하면서도 모르는 컬럼이 많아 거의 질문이 대부분이었다.)을 받았고, 마침내 ERD 설계를 끝냈다.

 

 

09, 10월(오늘해 V1.0에 필요한 주요 API와 외부 API 연동)

오늘해 V1.0을 만드는데 주어진 시간은 2달로 이 두 달동안 메인 기능들을 거의 다 개발했던 것 같다. 회원가입 부터 로그인 회원정보 수정, 이메일 인증, 태양광 발전량, 발전시간 등등 정말 많은 API들을 만들었다. 이 과정에서 QueryDSL, Mybatis 두 ORM에 대해서 많이 배웠다.(QueryDSL의 경우 정말 우아한 형제들의 유튜브 영상과 정리된 블로그글의 도움을 많이 받았다..ㅠㅠ)

 

가장 기억에 남았던 것은 바로 Kakao login인 기능을 추가하기 위해 사용한 Oauth2 프로토콜 이었다. 아래는 관련된 포스팅이다.

 

https://hidevelop.tistory.com/79

 

OAuth2 (이론 및 준비)

사용자 편리하게 어느 앱이나 웹에서 편리하게 이용할 수 있는 소셜로그인 기능! 이 기능은 어떻게 가능한 걸까요..? 목차 1. OAuth란? 2. OAuth 구성 요소 3. OAuth 2구현을 위한 준비 설계 OAuth란? 앱을

hidevelop.tistory.com

 

https://hidevelop.tistory.com/81

 

OAuth2 ( 실습 편)

카카오 로그인 API 구현하기! 전 포스트에서 OAuth2에 대한 이론에 대해 공부해보았습니다. 이제 한 번 서비스와 카카오 소셜 로그인 API를 연동해보겠습니다. (https://hidevelop.tistory.com/79) OAuth2 (이론

hidevelop.tistory.com

 

여기서 힘들었던 것은 사용자의 전화번호를 필수 개인정보로 받기위해서는 반드시 비즈 등록이 필요한 거였다. 이 부분은 필요한 정보나 지식을 찾아서(회사에는 Oauth2 로그인 사용해본적이 없다고 하셨다..ㅠ) 사업부와 프로젝트 총괄이신 부팀장님한테 부탁드려고, 비즈 어플리케이션을 등록하여 문제를 해결할 수 있었다.

 

11월 (AWS와 CI/CD 파이프라인, 무중단 배포)

- Docker

기존에 회사에서 사용하는 방식은 war파일에 FE,BE 코드를 합쳐서 배포하는 방식이었다. 처음에는 이런 방식을 그대로 채택하고자 했지만,

회사 내 테스트 서버 내에서 서버를 시범운영해야하는데, 테스트 서버의 다른 어플리케이션이 JDK8 버전으로 돌아가고 있고 오늘해의 경우에는 JDK11로 돌아가고 있어, 서버 환경에 영향을 받지 않는 Docker로 진행하겠다고 부팀장님게 허락을 구했다.

 

- 부하테스트

"오늘해"를 배포하기 위해서 회사에서 어떤 서비스를 이용해야 효율적인지 조사하라고 하였다.(AWS..EC2 프리티어만을 이용해보았던 나에게는..하늘이 무너지는 질문이었다..)

 

일단 처음 든 생각은 부하테스트를 진행해보자였다. 그래야 서버 스펙을 계산할 수 있을 것 같았다. 부하 테스트를 한 번도 진행해본 적 없어, 평소 들어가 있는 개발자 단톡방에  자문을 구한 결과!!! locust라는 프레임워크를 통해 진행해보기 하였다. 정확한지는 모르겠지만, oracle virtual box에 테스트 어플리케이션 배포하고 진행했을 때, 램 4GB로 했을 때, 동시 접속자 1000명 정도는 서버가 다운되지 않고 버텼다. 

그리고 램을 변화하면 여러번 테스트하였고 결과를 가지고 나름 합당한 서버의 스펙을 가져갔다.

 

하지만..결국 처음 배포하는 어플리케이션이라 사용자가 많지 않을 거라고 AWS EC2프리티어를 사용한다고 했다. ㅋㅋ ㅠㅠ 그래도 부하테스트 툴을 경험해볼 수 있는 좋은 기회였다. 칭찬도 받았으니 행복

 

- 무중단 배포

기존의 회사에서는 어플리케이션을 업데이트 할 때, 잠시 서비스를 중단하고, 업데이를 진행했다. 하지만, 내가 사용하는 어플리케이션의 서버는 사용자들이 업데이트를 진행할 때, 사용자가 이를 끈김없이 사용할 수 있었으면 좋겠다는 생각이들어 Ngnix와 Docker, Jenkins를 사용해 무중단 배포 환경을 구축했다.

 

이에 대해 회사사람들에 공유하기 위해 글을 작성하고, 궁금한 점에 대하여 코드를 직접 살펴보며 운영되는 방법이나 구현 방법에 대해 질의를 하는 시간을 가졌다.

 

https://hidevelop.tistory.com/89

 

NGINX를 이용한 무중단 배포

인턴 기간중에 새로운 프로젝트의 무중단 배포환경을 구축하여, 이에 대해 기록하고자 남기는 공간입니다 🥹 환경 - Amazone Linux2 (EC2) 무중단 배포란 무엇일까요..? 어플리케이션을 배포 과정을

hidevelop.tistory.com

 

12월, 앞으로의 미래(인턴 종료)

정말 좋은 경험이었다. 실무를 경험해 볼수 있는 기회였고, 협업능력 부분에서 많이 성장한 것 같다. 사람들과 업무에 대해 이야기를 나눌 때는, 전반적인 모든 것에 대해 애기하는 것보다 핵심을 이야기하는 것이 더 좋은 방향인 것 같다. 그리고 그림이란 아주 효과적인 전달방법임을 깨달았다.

음 일단 앞으로의 계획은 학교 학생 평가를 온라인으로 평가할 수 있는 앱을 구현하는 사이드 프로젝트에 참가하였다. 프로젝트는 1년~2년정도 혹은 더 미래로 장기화 될 것같다. 현실의 문제를 내가 가진 기술로 해결할 수 있는 좋은 기회여서 이 프로젝트에 장기적으로 참여하고 싶다.

 

프로젝트와 병행 하며 이제 평소 꿈꿔왔던 금융 개발자가 되기 위해 노력하고 도전할 것이다.

 

728x90

'심심한 나의 이야기' 카테고리의 다른 글

MIND 23 컨퍼런스  (0) 2023.09.03
앞으로의 공부 계획  (0) 2023.01.25
내가 원하는 개발자..?  (0) 2023.01.17
개발자란 꿈..  (0) 2023.01.10