미리보기
기본 정보
안녕하세요. 프로그래밍을 학습하는 것을 즐기는 주니어 백엔드 엔지니어 안승원입니다.
기술 스택
C, C++, Git, GitHub, Docker, Python, HTML/CSS
교육
이노베이션 아카데미 42 Seoul
사설 교육 | 프로그래밍
2023.02. ~ 현재 | 재학 중
프로젝트
Webserver
42Seoul
2024.06. ~ 2024.07.
C++로 작성한 HTTP/1.1 RFC 표준을 지키는 웹서버입니다.
협업에 앞서 코딩&커밋 컨벤션 정의
Nginx 구성 파일을 인자로 받아 파싱하는 기능 개발
RFC 문서를 참조하여 HTTP 표준에 맞춘 메시지 형식 파싱 및 생성 기능 개발
GET, HEAD, POST, DELETE 메소드에 따른 기능 개발
nc (netcat) 커맨드를 이용한 네트워크 통신 테스트 스크립트 개발
클라이언트 요청을 처리하고, 백엔드 서버와의 통신을 중계하는 프록시 기능 개발
Ollama Chat UI
개인
2024.08. ~ 진행 중
오픈소스 LLM을 로컬에서 돌릴 수 있는 Ollama를 더 쉽게 사용하기 위한 Chat UI입니다.
사용자 입력을 실시간으로 처리하여, 대화 중인 봇의 응답을 스트리밍 형식으로 출력
Marked 라이브러리를 사용하여 markdown 형식을 html 형식으로 파싱
사이드바를 통해 채팅방 생성, 전환이 가능
Minishell
42 Seoul
2023.09. ~ 2023.10.
C로 작성한 Unix Custom Shell입니다.
다양한 쉘 빌트인 함수 개발 (예: cd, echo, export 등)
시그널 처리 기능 구현하여 사용자 입력에 따른 적절한 행동 수행
입력된 문자열의 문법 유효성 체크 기능 개발
자기소개
동료 학습
저는 지난 1년 반 동안 42서울 교육을 통해 동료에게 가르치고 배우는 동료 학습에 익숙합니다. 42서울에서는 프로젝트 기반 학습을 하는데 프로젝트에 대한 평가(요구 사항 및 코드 리뷰)를 동료에게 받고, 저 또한 다른 동료의 프로젝트를 평가합니다. 이 과정에서 제가 동료에게 정보를 전달할 때는 제가 모르는 부분을 파악하고 알고 있는 내용에 대해서는 복습할 수 있는 좋은 기회를 가질 수 있었고 동료에게 질문할 때는 제 시야를 넓히는 귀중한 경험이 되었습니다. 이러한 경험은 제 빠른 성장에 도움이 되었고, 커뮤니케이션의 중요성을 더욱 깊이 이해하게 하였습니다.
또한, 1년간 매일 컴퓨터 공학 전공 책을 주제로 동료들과 스터디를 진행했습니다. 컴퓨터 구조, 운영체제, 네트워크, 데이터베이스, 객체 지향, 알고리즘 등에 대해 학습하였고 제 실력의 밑거름이 되어주었습니다.
마지막으로 다양한 팀 프로젝트를 경험하면서 코드 리뷰와 회의에서의 의견 제시, 문제 해결 과정에서의 논의를 통해 팀원들과의 관계를 더욱 돈독히 할 수 있었고 이는 좋은 결과로 이어졌습니다.
이러한 경험들을 바탕으로, 회사에서도 팀원들과의 원활한 소통을 통해 협업의 시너지를 극대화하고자 합니다. 프로젝트 진행 중 발생하는 다양한 의견과 아이디어를 적극적으로 공유하며, 서로의 생각을 존중하고 이해하는 환경을 조성하기 위해 노력하겠습니다.
빠른 성장
리눅스 기반 C/C++ 학습과 컴퓨터 공학 스터디는 제 컴퓨터 공학 지식 향상에 많은 도움이 되었습니다. 이러한 학습을 통해 컴퓨터 공학의 기초를 이해하게 되었고, 추상화된 소프트웨어의 동작을 보다 쉽게 파악할 수 있었습니다. 덕분에 새로운 기술의 핵심을 빠르게 이해할 수 있었고, 이는 빠른 학습 능력을 키우는 데 큰 도움이 되었습니다.
또한, 저는 새로운 기술을 배우는 것을 즐깁니다. 유튜브와 Hacker News를 통해 지속적으로 개발 관련 콘텐츠를 시청하고 직접 코드로 쳐보기도 하며, 이를 통해 얻은 인사이트를 바탕으로 셀프 피드백을 하고 있습니다. 이러한 과정은 제 성장과 앞으로 나아갈 방향성을 잡는 데 큰 도움이 되고 있습니다.
공식 문서
42서울에서 학습하기 위해서는 한 달 간 라피신이라는 과정을 거쳐 합격해야 합니다. 처음 접하는 리눅스 기반 C 프로그래밍은 저에게 큰 도전이었고, 주변 동료에게 하나하나 물어가며 과정을 헤쳐 나갔습니다. 이러한 경험은 동료 학습의 중요성을 깨닫게 해주었고, 동시에 공식 문서의 중요성도 알게 해주었습니다.
리눅스에서는 메뉴얼을 볼 수 있는 man 명령어가 있는데, 제 코드의 출처는 항상 거기서 나왔습니다. 이 덕분에 다른 기술을 학습할 때에도 먼저 공식 문서를 살펴보는 습관이 생겼습니다.
이는 제가 만든 코드의 견고함으로 이어졌고, 결과적으로 더 나은 프로그래밍 능력을 키우는 데 큰 도움이 되었습니다.