안녕하세요 2026년을 맞이해서 저에게 큰 의미가 있는 2025 회고를 작성해보려고 합니다!
왜 광주 소프트웨어 마이스터고를 선택했을까?
사실 저는 중3까지만 해도 아침 9시부터 밤 10시까지 학원에 갇혀서 일반계고를 준비했었습니다.
이때 저는 문과쪽을 좀 더 잘했기 때문에 이공계쪽으로 갈 거라곤 정말 상상도 못 했죠..
하지만 어느날 저의 방향성을 바꿔놓은 계기가 생겼습니다.
당시 여중이었던 저희 학교에 소프트웨어 관련 강의를 해주시는 분이 찾아오셨습니다.
처음에는 되게 신기하고 재밌어서 IT 관련 정보를 찾아보다가 광주소마고라는 고등학교를 발견하게 되었습니다.
처음에는 단지 관심만 있었을 뿐 가고싶다까지는 아니었지만 가면 갈 수록 학업에 치여서 사는 제 모습이
이게 과연 내가 원하는 방향이 맞을까? 라는 생각이 들게 했습니다.
조금 후회할지라도 모르지만 그래도 내가 관심있고 원하는 분야로 가보자 라는 생각이 저를 여기까지 끌고 온 것 같습니다.
물론 부모님을 설득시키는게 힘들었고 이때까지 일반계 공부를 열심히 한 게 조금 아깝긴 했지만요...
광주소마고를 선택한 걸 후회하진 않을까?
1차 지원서를 넣고 최종합격을 하기까지 되게 많은 생각이 들었습니다.
과연 이 길이 나에게 맞을까? 내가 생각했던것보다 분위기가 많이 다르지 않을까? 잘 적응할 수 있을까?
학교 입학하고 나서 들었던 생각은 물론 제가 생각했던것보다 다른점들도 있었고 힘들기도 했지만
상황을 어떻게 받아들이느냐에 따라 바뀌는 것 같습니다.
일단 제가 선택했던 길이기에 책임을 지고 싶어서 안 좋은 상황이 생기더라도 최대한 긍정적으로 받아들이려고 노력했습니다.
그리고 이 노력은 추후 저에게 많은 도움이 되었습니다.
어떤 개발자가 되고 싶은가?
사실 이 부분에 대해선 전에 블로그에 적었습니다.😅
https://seoxeon09.tistory.com/18
이상적인 개발자란 어떤 사람일까?
모든 직업이나 분야마다 각각의 이상적인 사람이 있습니다.예를 들어, 수학 교사가 되려면 수학을 잘하고 학생들을 이해하기 쉽게 가르치는게 이상적인거겠죠 근데 저는 여기서 갑자기 궁금한
seoxeon09.tistory.com
일단 취업하기 위해선 다양한 스택, 코딩 실력, 의사소통 능력이 중요하지만 저는 이보단 유연한 개발자가 되고싶습니다.
어떤 환경이든 자신이 처한 환경에 맞게 실력을 최대한 발휘하는게 중요하다고 생각합니다.
예를 들어, 기업이나 회사 규모의 크기에 따라서 각자 요구하는 인재상이 다릅니다. 채용 공고만 찾아봐도 다르다는걸 알 수 있죠..
그래서 저는 모든 기술을 잘 아는 개발자가 되기보다는 내가 처한 상황에서 무엇이 필요한지 고민할 수 있는 개발자로 성장하고 싶습니다.
개발 공부를 하는 방식과 그 방식이 나에게 맞는 이유
프론트엔드 개발을 공부할때 저는 하나의 자료에만 의존하기보다는
여러 자료를 비교하며 이해도를 높이는 방식으로 학습하고 있습니다.
새로운 개념이나 기술을 배우기전엔 먼저 블로그나 공식 문서, 다른 자료 등을 찾아 전체적인 흐름을 알려고 노력해왔습니다.
그리고 이제 자료들을 읽다가 이해가 잘 되지 않는 부분이나 어렵게 느껴지는 개념이 있으면 gpt에게 질문하며 내용을 더 쉽게 요약해달라 하거나 간단한 코드 예시들을 보며 이해했습니다.
이 학습 방식의 장점
- 전체 흐름을 먼저 파악
블로그나 공식 문서를 통해 개념의 배경과 사용 목적을 보다보니 기술이 어디에 쓰이는지 감을 잡을 수 있었습니다. - 어려운 개념을 쉽게 이해
어려운 개념을 더 쉽고 간단한 코드 예시로 풀어보면서 한 번에 이해하지 못해도 쉽게 개념을 정리할 수 있었습니다.
이 학습 방식의 단점
- 자료 선택에 따른 이해도
블로그나 다른 자료의 경우 작성자의 관점이나 정보의 정확성이 다르기 때문에 잘못된 이해로 이어질 가능성이 있다고 생각합니다 - AI 설명
gpt의 요약이나 설명이 이해를 돕기는 하지만, 알아서 너무 잘 요약해주기 떄문에 스스로 깊이 고민하는 과정이 줄어들었다고 생각합니다. - 실습이 부족
설명을 듣고 이해한것과 직접 구현해보는 것은 차이가 있어서 실습을 해보는것도 중요하다고 생각합니다.
지금까지 했던 프로젝트
1. Eum (4월)
Eum은 더모먼트에서 온보딩 프로젝트로 진행한 저의 첫 프로젝트입니다.
해당 프로젝트는 광주소마고 학생들이 분실물, 습득물 관리를 더 편하게 하기 위해 만들어진 서비스입니다.
https://github.com/themoment-team/eum-frontend
GitHub - themoment-team/eum-frontend: 교내 분실물 습득물 관리 시스템
교내 분실물 습득물 관리 시스템. Contribute to themoment-team/eum-frontend development by creating an account on GitHub.
github.com
저는 여기서 로그인, 회원가입 기능 구현을 맡았었는데 vanila.js로 구현해서 생각보다 복잡했던 기억이 있습니다..
이때 처음으로 localStorage라는 개념도 알게되었고 백엔드와의 연결도 어려웠던 것 같습니다.
더군다나 같은 프론트엔드 팀원과 개인적으로 친하지 않아서 2주간 서로 소통을 하지 않았었습니다.
이 때문에 서로의 의사소통 오해도 생겼고 전체적으로 일정이 미루어졌습니다.
이를 통해서 개인적으로 친하지 않다는 이유만으로 일정을 미루고 소통을 하지 않은건 정말 옳지 않았다는걸 깨닭게 되었습니다.
2. Ready, GSM (6월)
Ready, GSM은 광주소마고 학부모설명회/학과체험 신청 시스템입니다.
기존에는 구글폼으로 신청을 받았지만 이로 인해 불편함이 있어 제작하게 되었습니다.
개발을 진행하다가 중간에 선생님과의 소통 오류가 있어 지금은 중단된 상태입니다..
하지만 나중에 얘기가 잘 된다면 다시 진행해보고 싶은 프로젝트 중 하나입니다.
https://github.com/themoment-team/readygsm-front
GitHub - themoment-team/readygsm-front: 광주소프트웨어마이스터고 학과체험 및 입학설명회 신청 서비스
광주소프트웨어마이스터고 학과체험 및 입학설명회 신청 서비스. Contribute to themoment-team/readygsm-front development by creating an account on GitHub.
github.com
저는 여기서 메인화면 작업을 맡았었습니다.
딱히 기능적인 부분은 추가되지 않아서 퍼블리싱만 잘하면 되었습니다.
하지만 진행하면서 React를 처음 써봐서 익숙하지 않았고 반응형 작업이 생각보다 단순하지 않았던 기억이 있습니다.
전체적인 디자인이나 반응형이 Hello, GSM과 거의 비슷해서 헬지 접속을 진짜 50번은 한 것 같습니다..

3. Story (9월)
Story는 학생들이 자신의 포트폴리오를 작성하고 이를 게시판 형식으로 공유할 수 있는 서비스입니다.
해당 프로젝트는 아이디어 페스티벌로 진행되었습니다!
https://github.com/idea-404/Story-frontend
GitHub - idea-404/Story-frontend: 2025 아이디어 페스티벌 최우수상
2025 아이디어 페스티벌 최우수상. Contribute to idea-404/Story-frontend development by creating an account on GitHub.
github.com
프로젝트를 진행하면서 저는 메인페이지, 검색페이지, 마이페이지를 구현했습니다.
그 중 메인페이지를 구현하는데 가장 복잡하고 이슈도 많았습니다.

메인페이지 구현중 생긴 이슈로는
첫 번째 이슈
- 기존에는 무한 스크롤을 scroll event로만 구현하였지만 fetchPosts의 불필요한 재생 때문에 성능 저하 우려가 있어 IntersectionObserver로 구현 (요즘엔 이게 더 선호)

두 번째 이슈

위 사진의 원인은 useEffect 안에 있던 의존성 배열 때문에 무한 루프가 돌아 발생한 이슈였고 해당 부분은 아래와 같이 수정되었습니다.
변경 전
useEffect(() => {
setPosts([]);
setHasMore(true);
setLastId(null);
setLoading(true);
fetchPosts(null, tab);
}, [tab, sortType, fetchPosts]);
기존에는 배열에 fetchPosts가 포함되어 있어 무한 루프가 발생
변경 후
useEffect(() => {
setPosts([]);
setHasMore(true);
setLastId(null);
setLoading(true);
fetchPosts(null, tab);
}, [tab, sortType]);
무한 루프의 원인이었던fetchPosts를 제거
다사다난을 겪으며,
저희 팀원들이 다들 열심히 참여해준 덕분에 최우수상이라는 좋은 결과도 얻을 수 있었습니다!
5. 올해의 목표
올해의 목표로는 더 다양한 프로젝트를 진행해보며 경험을 쌓고
전공 관련 공부를 책도 읽으면서 이론적으로 더 깊게 파봐야 할 것 같습니다.
또한 요즘 프로그래머스 코딩테스트에 소홀해졌는데 이제 방학이고 시간적으로도 여유로우니
코딩 테스트를 다시 열심히 해보려고 노력중입니다!