서성한 / 컴퓨터 공학 / 학점 4.1/4.5 / 토익스피킹: al / 대기업 인턴 6개월 / 대외활동 3회, 특허 1회
보고있는 합격자소서 참고해서 내 자소서 작성하기
새창
목록
마음에 드는 문장을 스크랩 할 수 있어요!
지금 바로 PC에서 이용해보세요.
최고 품질의 상품들을 지금보다 더 많은 소비자들이 여러 유통 채널에서 더욱 폭 넓고 쉽게...
1. 본인이 끝까지 파고들어 본 가장 의미있었던 개발 경험 또는 개발 활동에 대해 얘기해 주세요. 그 개발 경험 또는 개발 활동을 통해 배운 점이 무엇인지, 본인의 '어떤 부분이 성장'했는지에 대해 작성해 주세요. (반드시 지원한 포지션과 관련된 경험이 아니어도 좋습니다.)
저는 내부 서비스의 접근 로그 이상 탐지 시스템을 설계하고 끝까지 개선해 본 경험이 가장 의미 있었던 개발 활동이었습니다. 인턴 당시 사내 시스템에 비정상 로그인 시도가 반복되는 문제가 있었고, 이를 자동으로 감지하는 기능이 필요했습니다. 초기에 팀에서 사용하던 스크립트는 단순 키워드 필터 수준이라 로그 양이 늘어나면 누락과 오탐이 잦아 운영에 도움이 되지 못하는 상황이었습니다.
저는 문제를 규명하기 위해 먼저 전체 로그 구조를 분석하고, IP, 계정, User Agent, 시각 패턴 등 핵심 필드를 표준화하는 작업부터 시작했습니다. 그 위에 Python 기반 파서를 구현해 로그를 정규화된 형태로 DB에 적재하고, 특정 시간대 반복 시도, 지역 불일치, 평소와 다른 접속 패턴 등을 기준으로 위험도를 산출하는 로직을 설계했습니다. 이후 실제 운영 데이터에 적용해 오탐 사례를 계속 확인하며 조건식을 조정했고, 캐싱과 인덱싱을 적용해 쿼리 지연 시간을 줄였습니다. 최종적으로 탐지 로직 성능을 안정화시키며, 운영팀이 실시간에 가까운 수준으로 의심 세션을 확인할 수 있는 상태까지 만들었습니다.
이 경험을 통해 제 성장 포인트는 두 가지였습니다. 첫째, 기능 구현에 그치지 않고 로그 구조 설계, 데이터 흐름, 성능 병목까지 엔드투엔드로 파고드는 습관이 생겼습니다. 둘째, 제대로 된 백엔드 개발은 한 번에 완성되는 것이 아니라 실제 트래픽과 운영 환경을 기준으로 계속해서 검증하고 수정하는 과정이라는 것을 배웠습니다. 라인플러스 백엔드 개발 직무에서도 같은 방식으로 서비스의 데이터 흐름과 병목을 끝까지 추적하며 신뢰도 높은 시스템을 만드는 데 기여할 수 있다고 생각합니다.
2. 지원하신 포지션과 연관지어, 학교 수업 또는 대외활동 등을 통해 습득한 'CS 지식'이나 '기술적 역량'에 대해 설명해 주세요. (최대 3개 / 1,000자 이내)
1. 데이터베이스 설계와 최적화
대학에서 ‘데이터베이스 시스템’ 과목을 통해 정규화, 인덱싱, 트랜잭션 관리 등 RDB의 핵심 구조를 학습했습니다. 이를 실제로 적용한 경험은 교내 프로젝트에서 사용자 활동 로그를 분석하는 백엔드 시스템을 구축할 때였습니다. 로그 데이터가 대량으로 쌓이면서 쿼리 속도가 느려지자, 데이터 접근 패턴을 분석해 필요한 필드에 복합 인덱스를 설정하고, 조회 빈도가 높은 테이블은 캐시 레이어를 통해 분리했습니다. 그 결과 평균 응답 속도가 2초에서 0.4초로 개선되었고, DB 구조 설계가 서비스 성능에 직결된다는 사실을 실무적으로 체득했습니다.
2. 네트워크 및 서버 구조 이해
‘컴퓨터 네트워크’와 ‘운영체제’ 수업을 통해 HTTP 프로토콜, TCP/IP 통신, 스레드 및 프로세스 모델을 학습했습니다. 이 지식을 토대로 Python Flask 기반 REST API 서버를 직접 구현했습니다. 요청마다 세션 관리 로직을 분리하고, 병렬 처리 방식의 비동기 큐를 도입해 다중 요청 상황에서도 안정적으로 응답할 수 있는 구조를 만들었습니다. 이를 통해 네트워크 지연, 동시성 제어, 세션 관리 같은 서버 핵심 개념을 실무적으로 이해했습니다.
3. 분산 처리 및 비동기 시스템 구현
대외 해커톤에서 대규모 요청을 처리하는 실시간 채팅 서버를 개발했습니다. Node.js와 Socket.IO를 사용해 비동기 이벤트 기반 구조를 설계하고, Redis Pub/Sub를 통해 서버 간 메시지를 동기화했습니다. 초반에는 동시 접속자가 늘어나면 메시지 전달 지연이 발생했으나, 클러스터링을 통해 트래픽을 분산하고 Redis 연결 풀을 관리하여 성능을 안정화시켰습니다.
이러한 경험을 통해 저는 단순히 코드를 작성하는 개발자가 아니라, 데이터 흐름을 설계하고 병목을 해결하며 시스템 전체의 신뢰성을 높이는 백엔드 엔지니어로 성장했습니다.
3. 본인의 SW개발 활동 경험 중 다른 사람과 함께 같은 목표를 위해 노력한 경험 또는 어려운 기술적 문제를 해결한 경험에 대해 얘기해 주세요.
(활동 기간, 주요 내용, 문제 접근 방식, 극복해가는 과정, 사용 언어와 기술 설명 등 타인과 협업하고 문제를 해결하는 과정 속 본인이 주도적으로 참여한 부분을 중심으로 작성해 주세요. 결과나 성과 등 참고 가능한 URL이 있다면 본문에 포함해 주셔도 좋습니다.)
저는 대학교 4학년 때 3개월간 진행한 교내 실시간 생산 데이터 모니터링 시스템 개발 프로젝트에서 어려운 기술적 문제를 팀원들과 협력해 해결한 경험이 있습니다. 이 프로젝트는 공장 설비의 센서 데이터를 수집해 웹 대시보드로 실시간 시각화하는 것이 목표였습니다. 저는 팀의 백엔드 개발 담당으로 Python 기반 Flask 서버와 MySQL 데이터베이스 구조를 설계했습니다.
초기 개발 단계에서 가장 큰 문제는 데이터 지연이었습니다. 센서 데이터가 초당 수십 개 단위로 쏟아지다 보니 서버 처리 속도가 따라가지 못했고, 대시보드 갱신이 5초 이상 늦어졌습니다. 단순히 서버 스펙을 높이는 방식으로는 한계가 있었기 때문에, 저는 데이터 흐름 자체를 근본적으로 점검했습니다. 로그를 분석해보니 모든 요청이 동기식으로 처리되어 I/O 대기 시간이 병목의 원인이 되고 있음을 확인했습니다.
이를 해결하기 위해 비동기 큐 구조를 도입했습니다. Flask 애플리케이션과 Redis를 연결해 Celery를 활용한 비동기 처리 방식을 적용했고, 데이터 수집과 시각화 요청을 분리해 처리했습니다. 또한 데이터베이스 쓰기 작업은 배치단위로 전환해 I/O 부하를 줄였습니다. 구조 개선 후 평균 응답 지연이 5초에서 0.6초로 줄었고, 실시간 시각화 시스템으로 안정적으로 동작했습니다.
협업 과정에서도 제 역할은 기술적인 조율자였습니다. 프론트엔드 담당자와 API 스펙을 명확히 정의하고, 테스트 환경을 Docker로 통합해 배포 오류를 최소화했습니다. 코드 리뷰를 주도하며 통일된 네이밍 규칙과 예외 처리 방식을 문서화해 팀 전체 개발 효율을 높였습니다.
이 경험을 통해 저는 문제를 단순히 코드 차원이 아니라 시스템 구조 관점에서 분석하는 사고방식을 익혔습니다. 이러한 경험은 다양한 서비스와 모듈이 연동되는 라인플러스 백엔드 개발 환경에서도 큰 강점이 될 것이라 확신합니다.