미리보기
- 직업
- 개발자
- 이름
- 김동학
- 간단소개
- 세상을 조금 더 여유롭게
자기소개
- 자기소개
어떤 환경에서도 주변 사람들과 소통하며 발전하려고 노력합니다.
GOGO, SMS 등 교내에서 다양한 팀 프로젝트를 진행하며 겪은 시행착오로 팀워크의 소중함을 알게되어 어떻게 해야 효율적으로, 친절하게 소통할 수 있을지에 대해 항상 고민하고 있습니다. 또한 스스로도 항상 성장하기 위해서 토이 프로젝트 개발 및 스터디를 통해 성장해나갑니다.
앞으로 겪을 상황에서도 주변과 협력하는 자세로 성실히 발전할 것입니다.
기술 스택
- 기술 스택
- NestJS
- TypeScript
- AWS
- Next.js
- PostgreSQL
- Spring Boot
- Python
프로젝트
- 프로젝트명
- SMS
- 소속/기관명
- 광주소프트웨어마이스터고등학교
- 프로젝트 기간
- 2023.04. - 진행 중
- (1년 7개월)
- 프로젝트 설명
Redis TTL을 이용한 포트폴리오 접근 기간 개발
스프린트를 통한 의견 공유 및 앞으로의 개발 로드맵 계획
헥사고날 아키텍쳐를 사용한 관심사 분리 및 개발 비용 감소
세분화된 권한으로 개인정보 보호
S3 SDK를 사용한 포트폴리오 PDF 업로드
Student Management Service의 약자로 학교 내부에서 기업에 제출할 목적으로 사용하던 기존의 종이책자를 브라우저와 앱으로 사용할 수 있게 하는 것을 목적으로 개발되었습니다.
Backend
프로젝트에 중간부터 백엔드 개발자로 참여해서 유지보수 및 신규 기능 개발을 맡아서 학생 포트폴리오 만료기간 생성, PDF 포트폴리오 수정 등의 기능을 추가했습니다. 레디스 TTL을 이용해서 학생의 포트폴리오 접근 기간을 설정할 수 있도록 개발해서 개인정보가 계속 남아있지 않도록 했으며, 교장, 교감 선생님 등의 분류로 권한을 세분화하였습니다. 또한 헥사고날 아키텍쳐를 사용해서 추후 기능 확장에 유리하고 관심사를 분리해서 디버깅을 하기 위해서 확인해야할 코드가 줄었습니다.
Links
- 프로젝트명
- Kolosseum
- 소속/기관명
- 개인
- 프로젝트 기간
- 2024.08. - 진행 중
- (3개월)
- 프로젝트 설명
- 프로젝트명
- Prisism
- 소속/기관명
- 개인
- 프로젝트 기간
- 2024.06. - 2024.06.
- (1개월)
- 프로젝트 설명
Spring WebSocket을 이용한 1대1 채팅 구현
SWR을 이용해서 주기적으로 새로고침
Nginx를 사용한 프록시 구성
메모리 스와핑을 이용한 리눅스 자원 활용
누구나 사용할 수 있는 랜덤채팅 서비스로 안정적인 소켓 연결성과 아키텍쳐링을 목적으로 개발되었습니다.
Server
랜덤채팅에서 소켓을 통해서 매칭이 되었음에도 30 ~ 50초가 지나면 연결이 끊기는 현상이 발생했고, 오랫동안 요청이 발생하지 않으면 자동으로 소켓이 닫힌다는 것을 알게되어서 15초마다 스케쥴을 사용해서 핑 메시지를 보내줬습니다.
DevOps
Nginx를 통한 소켓 및 API 프록시를 사용해서 https, http 기본 포트로 API에 접근할 수 있게 해서 Base URL을 더 짧게 만들었고, Ansible로 서버 구성을 자동화해서 서버가 바뀌더라도 금방 세팅될 수 있도록 했습니다. 처음에 스프링 서버를 EC2 프리티어 (RAM 1GB)에서 바로 구동시켰더니 트래픽이 아주 조금만 늘어도 요청을 받기 힘들 정도의 부하가 생겨서 메모리 스와핑을 사용해서 가상 메모리를 포함한 3GB로 사용할 수 있었습니다.
Frontend
클라이언트에서는 Next.js를 사용한 SEO 구성 및 SWR을 사용해서 채팅 도중에도 유저 수를 주기적으로 새로고침될 수 있도록 적용하였습니다.
Links
- 프로젝트명
- GOGO
- 소속/기관명
- 광주소프트웨어마이스터고등학교
- 프로젝트 기간
- 2024.03. - 2024.08.
- (6개월)
- 프로젝트 설명
Spring Batch와 Schedule을 활용한 인증 초기화 개발
멀티 모듈 구성으로 API, Entity, Batch 서버 분리
기타 오류 수정
친구들과 체육대회를 조금 더 재미있게 즐기기 위해서 개발한 서비스입니다.
Backend
백엔드 개발자로 참여해서 개발 과정에서 Spring Batch를 이용한 배치 작업을 통해 전화번호 인증 기록 초기화 스케줄을 개발했으며 이외에도 운동회 기간 동안 생긴 음수 입력으로 인한 비정상적인 포인트 버그, 동시성 중복 입력 등의 문제들을 해결했습니다.
Links
포트폴리오
교육
- 소속/기관
- 광주소프트웨어마이스터고등학교
- 종류 | 전공명/전공계열
- 고등학교 | 스마트IoT과
- 재학 기간 (재학 상태)
- 2023.03. - 재학 중