선배의 제안과 새로운 도전: 이전까지 코딩테스트와 학교 수업에 집중하던 중, 선배의 제안으로 Spring Boot와 JPA를 사용한 백엔드 개발에 참여하게 되었습니다. 이는 새로운 도전이었고, 처음 접하는 기술에 대한 호기심과 열정으로 프로젝트에 임했습니다.
팀워크와 협업: 밤을 새우며 팀원들과 함께 열심히 개발하는 과정에서 커뮤니케이션의 중요성과 팀 프로젝트의 가치를 깨달았습니다. UML 작성과 테이블 구조등 프로젝트 전 요구사항 정리와 같은 설계에도 배우게 되었고, 깃(Git) 사용 능력도 향상되었습니다.
기술적 성장과 반성: 프로젝트를 통해 다양한 기술을 경험했지만, 개발을 진행하면서 '어떻게'보다는 '왜'라는 질문에 충분히 집중하지 못했다는 것을 깨달았습니다. 이는 나중에 스터디를 진행하며 깊이 있는 학습을 추구하게 된 계기가 되었습니다.
교훈 및 반성:
프로젝트를 통해 기술적인 역량을 키우는 것도 중요하지만, 그 기술이 왜 중요하고 어떤 원리로 작동하는지 이해하는 것이 더 중요함을 배웠습니다. 이 경험은 후에 자바, 클린 코드, 운영체제, 컴퓨터 구조에 대한 스터디로 이어지며, 단순한 성적이 아닌 진정한 이해와 지식을 추구하는 학습 방향으로 나아가게 했습니다.
스터디: 운영체제, 컴퓨터 구조, 자바
경험 및 성장:
운영체제와 컴퓨터 구조: 면접 형식으로 진행된 이 스터디는, 이전에는 동시성 문제, 기하현상, 스레드와 프로세스 등학점을 위해 외웠다면 이번엔 이러한 부분에 공부할 수 있는 기회였습니다. 이 과정에서 단순히 외우는 것이 아니라 개념을 이해하고 머릿속에서 그려볼 수 있게 되었습니다. 이는 큰 성취감을 줬고, 자신감을 키워주었습니다.
면접 준비와 자기표현: 스터디를 통해 자신의 생각을 명확하게 표현하는 법을 배웠고, 이는 면접 준비에도 큰 도움이 되었습니다. 자신이 모르는 것을 인정하고 말하는 데에 대한 두려움을 극복하는 경험이었습니다.
자바 공부의 도전: 자바 공부는 초기에는 기본 문법이 쉽게 느껴졌지만, 더 깊은 내용으로 진행하면서 지식의 부족함을 실감했습니다. 이는 자신에 대한 겸손한 평가와 자기 인식을 높이는 계기가 되었습니다. 자바는 여전히 어렵게 느껴지지만, 기본적인 지식을 잊지 않기 위해 반복 학습을 하고 있습니다.
공모전: 소프트웨어 개발 보안 경진대회 참가
경험:
프로젝트의 확장과 적용: 기존에 진행했던 프로젝트를 바탕으로 공모전에 참가했습니다. 예선을 통과하여 해커톤 형식으로 진행된 본 대회에서는, 프로젝트에 보안적인 요소를 추가하는 작업을 했습니다.
보안에 대한 새로운 관심: 이전에는 보안에 대해 큰 관심이 없었지만, 이 경험을 통해 보안의 중요성을 깨닫게 되었습니다. '소프트웨어 개발 보안 가이드'를 참고하며 Java 보안 기초를 학습했습니다.
보안 실습과 발표 준비: Burp Suite를 사용하여 자체 개발한 웹사이트의 보안을 테스트했고, SonarQube를 이용해 취약점을 제로로 만드는 작업을 했습니다. 이 과정에서 SQL 인젝션, XSS, DOM 등 보안의 기본적인 개념을 실습하며 이해했습니다.
교훈 및 반성:
공모전을 통해 소프트웨어 개발에서 보안이 얼마나 중요한지를 실감했습니다. 실제로 보안 문제를 해결하며 보안에 대한 지식과 기술을 향상시킬 수 있었습니다. 이 경험은 학부생활 동안 보안에 더 많은 관심을 가지지 않았던 것에 대한 반성과 함께 앞으로의 학습 방향에 중요한 영향을 미쳤습니다.
밤새 코딩하고 발표를 준비하는 과정은 힘들었지만, 매우 뜻깊은 시간이었습니다. 이러한 경험이 학부생활에서 더 많지 않았던 것이 아쉽습니다.
코드리뷰: 깨달음과 실망
갑작스러운 자각: 졸업한 선배에게 받은 코드리뷰는 내게 큰 충격이었습니다. 간단한 계산기 프로젝트를 통해 내가 객체지향에 대해 제대로 이해하지 못하고 있었다는 사실을 깨달았습니다.그때 생각해보면 객체란 뭐야라는 질문에 제대로 대답하지 못했습니다. 이전까지는 기능만 동작하면 충분하다고 생각했었고 그나마 생각했던게 시간복잡도나 메모리 부분이였습니다. 객체지향적인 코딩을 어떻게 할수 있을지 고민하게 되었고 스스로하게 몹시 실망했던 기간이였습니다. 코딩에 대한 거부감도 들었고, 학부생 동안의 시간이 무의미하게 느껴졌습니다.
실망과 자기반성: 선배의 리뷰는 내 기술 수준에 대한 차가운 현실을 일깨워주었습니다. "자바 공부 2달한 학생의 수준"이라는 말에 깊은 실망감을 느꼈습니다.. 4학년 대학생으로서, 내가 얼마나 피상적으로 공부했는지를 깨닫고 많이 부끄러웠습니다.
교훈:
이 경험은 나에게 큰 교훈이 되었습니다. 개발자로서 단순히 코드를 만드는 것이 아니라, 그 코드가 왜 중요하고 어떻게 작동하는지를 이해하는 것의 중요성을 깨닫게 되었습니다. 결합도, 응집도, SOLID 원칙과 같은 기본적인 개념들에 대해 더 깊이 고민하고 공부하기 시작했습니다.
이후로는 코드 한 줄 한 줄을 더 신중하게 작성하려고 노력하고 있습니다. 아직은 완벽하지 않지만, 이러한 자각은 내가 개발자로서 계속 성장하기 위해 변해야 되는 숙제라고 생각합니다. 선배와 하는 코드리뷰는 나에게 있어 개발자로서의 가장 중요한 반성의 순간 중 하나였습니다.
인턴 경험: 인천스타트업 파크
기간: 6월부터 현재까지
경험:
새로운 기술과의 만남: 인턴십 동안, 자바와 스프링 외에도 JavaScript, NestJS, Prisma, PostgreSQL 등 새로운 언어와 프레임워크, ORM, DB를 사용하는 경험을 했습니다. 이전에 접해보지 않았던 기술들과의 만남은 어려움을 동반했지만, 이를 통해 더 넓은 기술적 지평을 경험할 수 있었습니다.
프로젝트 참여와 아쉬움: 진행했던 프로젝트가 배포되지 않아 아쉬움이 남았지만, 자바와 스프링의 공통점을 찾으며 개발하는 과정에서 많은 것을 배웠습니다. 익숙하지 않은 언어를 사용하면서 느꼈던 의욕 저하를 극복하고, 적응하려는 노력이 있었습니다.
기술적 성장과 조언: NICE API와 같은 본인 확인 서비스를 사용하는 등 다양한 기술적 경험을 했습니다. 이사님의 조언을 통해 개발 과정에서 성능과 객체지향적인 코딩에 대해 배울 수 있었습니다.
교훈:
이 인턴 경험을 통해, 새로운 환경과 기술에 빠르게 적응하는 법을 배웠습니다. 언어와 프레임워크에 구애받지 않고 유연하게 개발할 수 있는 능력을 키우는 데 중요한 시기였습니다.
이러한 경험은 앞으로의 개발자로서의 경력에서 더 다양한 기술을 배우고 적용하는 데 큰 도움이 될 것입니다. 처음 접하는 기술에 대한 두려움을 극복하고, 끊임없이 학습하는 자세가 개발자로서의 성장에 필수적임을 깨달았습니다.
우아한 테크 프리코스 경험
경험:
집중적인 코딩과 학습: 프리코스에서는 한 달 동안 집중적으로 코딩하며 많은 것을 배웠습니다. 이 과정은 재미있었고, 개발 능력을 한층 더 향상시킬 수 있는 기회였습니다.
구조와 객체지향적 접근: 프리코스를 통해 코드의 구조에 대해 깊게 생각하고, 객체지향적인 코딩 방식에 더 집중할 수 있었습니다. 대학 동기와의 토론을 통해 디자인 패턴과 SOLID 원칙을 실제로 적용해보는 경험을 했습니다.
코드리뷰와 테스트 코드: 다른 지원자들과의 코드리뷰는 새로운 코딩 방식을 배우는 데 큰 도움이 되었습니다. 또한, 테스트 코드를 작성하는 이유와 중요성에 대해 더 분명하게 이해할 수 있었습니다.
교훈 및 반성:
아쉽게도 프리코스에 최종적으로 합격하지는 못했지만, 부족했던 부분이 무엇인지 알고 싶은 마음이 컸습니다. 이러한 아쉬움은 앞으로 더 성장하기 위한 동기부여가 되었습니다. 처음 코드 리뷰했을 때 보다 성장한 제 모습을 보며 뿌듯했고 코딩에 대한 흥미가 다시 생기는 기간이 였던거 같습니다!
현재와 미래를 향한 준비
현재의 집중: 현재는 스프링을 공부하고 있으며, 이를 마친 후 개인 프로젝트에 도전할 예정입니다. 프론트와 백 클라우드를 경험해보면서 내가 부족한 점을 찾고 성장할 계획입니다. 개인 프로젝트 이후 취업시장에 도전해 보려합니다! 떨어질까 걱정도 많지만 원하는 회사에 떨어진다 하더라고 너무 상심하지 않고 더 노력해서 목표를 이루도록 하고싶습니다.
지속적인 성장을 위한 다짐
규칙적인 생활과 공부: 규칙적인 생활과 지속적인 학습은 성공적인 취업과 개발자로서의 성장을 위해 필수적입니다. 나약함에 굴하지 않고, 스스로 타협점을 찾으려 하지 않겠습니다.
깊이 있는 학습과 실천: '왜'라는 질문과 '어떻게'라는 생각을 가지고 코딩하며, 한 줄 한 줄 근거를 가지고 작성할 것입니다. 이를 통해 더 나은 개발자로 성장할 수 있습니다.