미리보기
기본 정보
안녕하세요 백엔드 개발자 이선희 입니다. 지식을 공유하며 소통하는 활동을 좋아하며, 모르는 부분은 스터디를 통해서 알아가고 자신있는 부분은 멘토 활동을 하면서 다양한 팀활동에 참여하였습니다. 서비스에 대해 꾸준히 찾아보고 사용자 관점에서 사소한 것 하나까지 보려고 노력하고 일상생활 속에서도 어떻게 하면 더 효율적인 결과를 만들 수 있을지 고민합니다.
기술 스택
Java, Spring Boot, JPA, MySQL, JavaScript, C#, Unity, Android
프로젝트
Now-Waypoint(NOWA)
카카오X구름 기업연계 프로젝트
2024.07. ~ 2024.08.
모르는 사이에 내 주변에 생겨나는 이야기를 주워보자!
사용기술
Java, Spring Boot, Spring JPA, MySQL, Redis
Github Actions, AWS EC2, AWS S3, Dokcer, Nginx
주요 역할
카카오 API와 geoLocation을 사용해 현재 위치를 위경도로 가져와서 백엔드에서 필요한 정보만 가공해서 전달
본인이 작성한 글과 주변 반경(30km, 50km, 100km)을 설정하여 주변 반경에 있는 사람들이 작성한 컨텐츠 확인
지도 마커
→ 현재 자신이 선택한 카테고리, 거리에 맞는 컨텐츠들이 지도에 마커로 표시실시간 마커
→ 자신이 선택한 범위, 혹은 카테고리가 일치한다면 그에 맞는 컨텐츠들은 실시간으로 표시AWS S3, 프론트 배포
→ 백엔드와 프론트엔드를 분리하여 S3와 CloudFront를 활용해 성능 최적화와 보안을 동시에 확보
→ 또한비용이 효율적이고 확장 가능
트러블 슈팅 및 고민
30분 지나면 사라지는 휘발성 컨텐츠인데 보다 효율적으로 관리할 수 없을까?
TTL 기능으로 휘발성 컨텐츠, 채팅 메시지, JWT 토큰 관리
위치 기반의 데이터를 가져오기 위해서 redis GEOADD를 사용
PlayWithMe
개인
친구와 함께하는 1 : 1 영혼의 결투
사용기술
Unity, C#, Photon Engine
주요 역할
멀티플레이 환경 구축
Phton Engine을 사용하여 네트워크 환경에서의 실시간 동기화 및 데이터 전송 처리
플레이어의 위치, HP, 총알 데이터 등 게임의 핵심 요소 동기화
네트워크 상태를 고려한 게임 안전성 확보
로비 기능 구현
초기 화면
닉네임 생성(설정) 기능
닉네임 설정 후 방 찾기 버튼 동작
첫 번째 접속자인 경우
트러블 슈팅 및 고민
30분 지나면 사라지는 휘발성 컨텐츠인데 보다 효율적으로 관리할 수 없을까?
TTL 기능으로 휘발성 컨텐츠, 채팅 메시지, JWT 토큰 관리
위치 기반의 데이터를 가져오기 위해서 redis GEOADD를 사용
포트폴리오
교육
명지전문대학(전공심화)
대학교(학사) | 컴퓨터공학과
2018.02. ~ 2024.02. | 졸업
자기소개
🎥 자기소개서
전공 능력
‘프로그래밍 수업 및 경험’
대학에서 가장 관심 있게 공부한 수업은 프로그래밍 수업이었습니다. JavaScript, C, JAVA, C# 중에서도 특히 JAVA에 깊은 흥미를 느꼈고, 이를 활용한 애플리케이션, 모바일, 웹 프로그래밍을 각각 1년간 집중적으로 학습했습니다. 그 결과 JAVA를 활용한 다양한 프로젝트를 수행할 수 있었습니다. 또한, C#을 기반으로 한 Unity 엔진을 사용하여 게임 개발도 해보았습니다. 데이터베이스는 MySQL과 Oracle을 통해 기초 이론과 실습을 학습한 뒤, JAVA 수업에서 DB를 연결하여 프로그램을 개발하였습니다. 현재도 Java와 Spring, Spring Boot를 이용하여 웹페이지를 개발하고 있습니다.
‘프로그래밍의 시작, C언어’
컴퓨터공학과에 입학하자마자 처음 배운 언어는 C언어였습니다. 처음으로 printf("Hello C World");를 출력했을 때, 마치 아이처럼 신기하고 설렜던 기억이 있습니다. 비록 C언어로 대규모 개발을 해본 경험은 없지만, 이 언어는 저의 논리적 사고와 프로그래밍 기본기를 형성하는 데 큰 역할을 했습니다.
특히 기억에 남는 과제는 교수님께서 주신 성적 처리 프로그램을 개발했던 경험입니다. 단순히 학점을 계산하는 것이 아니라 다양한 조건에 따라 결과가 달라지는 문제였고, 배열 뿐만 아니라 일반 변수도 적절히 활용해야 했습니다. 처음엔 단순해 보였지만, 다양한 조건과 변수를 다루면서 효율적으로 문제를 해결하는 방법을 고민하게 되었습니다. 이러한 과정에서 C언어는 저의 프로그래밍 사고에 깊은 영향을 미쳤으며, 이후 다른 언어와 도구를 배우는 데에도 중요한 기반이 되었습니다.
‘JAVA를 사용한 프로그램 개발 경험’
2학년 1학기 때 JAVA를 활용하여 급여 계산 프로그램을 개발하였고, 이 과정에서 추상클래스를 사용하여 상속받아 프로그램을 완성하는 경험을 했습니다. 2학년 2학기에는 팀 프로젝트로 다이어리 프로그램을 개발하면서, 레이아웃을 구성하고, JTextField를 활용해 ToDoList 기능을 구현했으며, 체크박스를 사용해 완료된 항목을 표시하는 기능도 추가 했습니다. 이 프로젝트를 통해 팀원들과의 협업 과정에서 의견을 조율하는 방법을 익혔고, 첫 대규모 프로젝트에 대한 부담감을 극복하며 성취감을 느꼈습니다.
‘안드로이드 기반의 모바일 어플리케이션’
2학년 2학기부터 3학년 1학기까지 안드로이드 스튜디오를 사용해 모바일 어플리케이션 개발에 도전했습니다. 현재는 자취생을 위한 커뮤니티 어플리케이션을 개발 중이며, 기획 단계는 마무리되었고, UI/UX 디자인과 데이터베이스(DB) 개발을 진행하고 있습니다. MySQL을 통해 DB를 구현하고 있으며, FireBase를 이용해 서버를 구축하고 있습니다. 이 과정에서 사용자의 요구를 반영한 기능을 구현하는 데 중점을 두고 있으며, 실제 사용자들에게 유용한 어플리케이션을 만들기 위해 노력하고 있습니다.
‘Unity 엔진을 사용한 게임 개발’
3학년 1학기에는 Unity 엔진을 활용한 게임 개발 프로젝트에 참여했습니다. 학교에서 C#을 배우지 않았기 때문에 독학으로 공부하며 C#을 기반으로 한 자동차 장애물 달리기 게임을 개발했습니다. 처음에는 생소한 언어와 환경 때문에 어려움이 있었지만, JAVA를 통해 쌓은 프로그래밍 기초 덕분에 비교적 빠르게 적응할 수 있었습니다. 특히 게임 개발 과정에서 제가 상상한 아이디어를 코드로 구현하며 큰 희열을 느꼈고, 이러한 경험이 앞으로의 개발자로서의 길에 중요한 밑거름이 되리라 확신하게 되었습니다.
‘Spring을 통한 백엔드 도전’
졸업 후 진로를 고민하던 중, 풀스택 개발자가 되고 싶다는 목표가 생겼습니다. 대학 시절에는 주로 모바일과 게임 개발에 관심을 두었고, 웹 프론트엔드에 대한 학습 경험이 있었지만 백엔드 분야는 깊이 있게 다뤄보지 않았습니다. 하지만, 풀스택 개발자로서의 가능성을 확장하고 싶다는 생각에 백엔드 분야에도 도전해보고 싶었습니다. 이러한 결심으로 작년 2월, 구름톤X인프런 풀스택 개발자 부트캠프에 지원하게 되었습니다. Spring 프레임워크를 처음 접하면서 많은 어려움이 있었지만, 그만큼 새로운 매력을 느꼈습니다. 백엔드 개발은 프론트엔드나 게임 개발과는 다른 복잡성과 깊이를 가지고 있었습니다. 특히 Spring의 다양한 기능과 아키텍처를 이해하는 과정에서, 과거의 개발자들이 겪었을 시행착오와 그것을 바탕으로 발전한 현재의 기술들을 학습하는 것이 흥미로웠습니다. 완벽한 모델을 처음부터 공부하는 것이 아니라, 단계별로 발전해 온 기술의 흐름을 이해하면서, 보다 깊이 있는 성취감을 느끼게 되었습니다.
아직 백엔드에 대한 경험이 부족하지만, 그 동안의 경험을 통해 백엔드뿐만 아니라 어떤 분야든지 관심을 가지고 꾸준히 학습하면 충분히 뛰어난 개발자가 될 수 있다는 믿음을 가지게 되었습니다. 이러한 자신감과 열정을 바탕으로, 앞으로도 지속적으로 백엔드 개발 역량을 키워나가고자 합니다.
성장배경
‘지기 싫어하는 아이’
어렸을 때부터 저는 지기 싫어하는 성격이었습니다. 친구들과의 단순한 내기조차도 승부욕을 자극했고, 특히 제가 좋아하는 분야에서 지면 속상해하며 몰래 울곤 했습니다. 탁구 선수를 준비하던 시절, 저는 소위 말하는 영재였습니다. 탁구를 배운지 얼마 되지 않아 같은 학년중에서 랭킹 1등이 되었습니다. 시합을 나가면 대부분 이겼지만 가끔 컨디션이 좋지 않아 경기를 지는 날도 있었습니다. 경기를 지면 코치님한테 부탁하여 연습을 더했고 코치님이 퇴근하면 혼자 탁구 머신과 랠리 훈련을 하고 집에 가는 날도 많았습니다. 그때의 연습의 결과는 저를 시대회 1등을 할 수 있도록 만들어주었습니다. 그때의 경험 덕분에 더 나은 성과를 내기 위해 끊임없이 노력하는 자세가 몸에 배었습니다.
대학에 입학한 후 처음 전공 수업을 접했을 때, 익숙하지 않은 개념들이 많아 수업을 따라가는 것이 쉽지 않았습니다. 첫 시험에서 기대 이하의 성적을 받았고, 이로 인해 스스로에게 실망감과 분노가 생겼습니다. 그때의 저는 회피하기 바빴기에 휴학을 하는 선택을 했습니다. 휴학 기간 도중에는 다른 분야에 대해서 준비하다가 부상으로 결국 포기하게되었습니다. 그때 저는 한번더 무너질뻔했지만 억울하다는 생각이 들어 다시 복학을 준비했습니다. 복학을 하면서 이전과는 다른 모습을 보여주겠다고 다짐했고 다행히 복학 시즌에 비대면이라서 모르는 부분은 혼자서 동영상 강의나 책을 찾아서 공부했습니다. 혼자서 안되는 부분은 공부를 잘하는 동기한테 서스럼없이 물어봤고 동기한테 해결이 되지 않으면 교수님께 메일을 보내거나 교수님 연구실에 찾아가서 질문하곤 했습니다. 그때 저는 수험생 시절처럼 열심히 공부했습니다. 복습은 물론이고 진도를 따라가지 못할까봐 교수님이 진도 나갈 부분까지 예습하고 이해가 안되는 부분을 체크하여 수업을 들었습니다. 그 결과 성적 향상은 물론이고 교수님들께 인정 받아 후배들에게 가르쳐주는 튜터링 튜터를 맞게 되었고 학과 스터디 프로그램, 논문 투고 등 더욱 발전하게 되었습니다.
전공 수업의 팀 프로젝트와 부트캠프의 팀 프로젝트를 통해 동료들과 협력하며 더 나은 결과물을 만들기 위해 노력했고, 이를 통해 협업의 중요성과 문제 해결 능력을 키울 수 있었습니다. 졸업학기 팀프로젝트 때 이슈가 많이 생겼으나 팀장으로써 문제가 생기면 팀원들과 상의하여 해결하면서 문제점을 해결했던 경험이 있었습니다. 그 결과 좋은 결과물이 완성되었고 교수님들께도 인정받아 추후에 교수님 추천으로 학술대회 논문에 투고하여 발표했던 경험도 있습니다
현재 부트캠프 수료 이후 팀원들과 같이 어플리케이션을 보완중이며 우수한 성과를 얻고자 하는 열망을 품고 있습니다.
성격의 장단점
‘승부사 기질이 있는 백엔드 개발자’
저는 승부사 기질이 강한 열정적인 사람입니다. 관심 있는 분야에서 누구보다 뛰어나고 싶은 욕심이 크고, 부족한 부분을 발견하면 그 문제를 해결하기 위해 끊임없이 노력합니다.
"안되면 될 때까지 하라"는 좌우명처럼, 포기하지 않고 끝까지 문제에 매달리는 자세를 유지하고 있습니다. 제게 할당된 부분에서 최선을 다해 노력하고, 그 결과가 긍정적으로 드러났을 때 큰 만족감을 느낍니다. 이러한 승부욕과 열정은 저를 더 성장시키는 원동력이 되어왔습니다. 하지만 이러한 성격 때문에 때로는 지나치게 자책하는 경향이 있었습니다. 노력한 만큼 결과가 나오지 않으면 스스로를 한심하게 여기고 자책하게 되어, 오히려 더 안 좋은 결과를 초래한 적도 있습니다. 이를 극복하기 위해 한발짝 물러서서 문제를 바라보고, 해결책을 찾는 법을 배우기 시작했습니다. 이를 통해 문제에 더 유연하게 대응할 수 있게 되었고, 이과정에서 배운 점들은 저를 더 성숙하게 만들어 주었습니다.
지원동기 및 포부
‘끊임없는 도전과 성장, 백엔드 개발자의 길’
저는 실패를 두려워하지 않고, 도전과 성장을 즐기는 사람입니다. 현재 저의 실력이 완벽하지 않다는 것을 알고 있지만, 꾸준히 노력하는 성실성으로 누구보다 더 나은 성과를 이룰 수 있다는 자신감이 있습니다. 팀 프로젝트를 진행하면서도 제게 부족한 부분이 있으면 혼자서라도 끝까지 공부하며, 문제를 해결하기 위해 밤을 새우는 일도 마다하지 않았습니다. 완벽하지 않기에 더 나은 사람이 되기 위해 끊임없이 노력하고, 이 과정에서 얻은 성취감과 배움을 통해 더욱 성장하고 있습니다. 저는 백엔드 개발에 대한 깊은 흥미와 열정을 가지고 있으며, 이를 바탕으로 기업에서 중요한 역할을 할 수 있는 인재로 성장하고 싶습니다. 제가 가진 승부사 기질과 끈기는 어려운 문제를 해결하고, 더 나은 결과를 만들어내는 데 큰 도움이 될 것입니다. 또한, 부트캠프에서 배운 지식과 경험을 바탕으로, 개발자로서의 역량을 더욱 향상시키고 싶습니다. 앞으로도 계속해서 도전과 성장을 이어가며, 귀사를 위한 혁신과 열정을 펼치는 개발자가 되겠습니다.