타임라인
GDSC 2차 프로젝트
4월에 이어서 GDSC 2차 프로젝트를 진행했다.
이번 달에는 많은 부분을 건드리진 못하고, 주로 채팅 구현에 집중했다.
우리 프로젝트는 채팅을 통한 협업 기능이 있는 웹 서비스를 구현하는 것이었기 때문에 이 부분을 제대로 구현하는 데 중점을 두었다.
처음에는 채팅만 구현하면 된다고 생각했었지만 파일 전송과 채팅방 구독 및 해제 등 고려해야 할 점이 많았다.
보통 채팅 기능을 사용할 때 단순히 메시지만 주고받는 상황을 생각하지 않기 때문에 UX를 향상시키기 위해 이러한 추가 기능이 꼭 필요했다.
이번 달 중간쯤에 API 연결 작업을 했어야 했는데 서버 쪽에서 배포한 기능이 제대로 동작하지 않아 약간의 지연이 발생했다.
배포된 API를 토대로 연결을 해보려고 계획했던 터라 이 부분에서 일정이 조금 꼬였다.
매주 개발 관련해 회의를 하는데 5월 25일에 열린 회의에서 이 문제에 대한 해결책을 만들어주셨다.
대부분의 기능을 로컬로 돌려볼 수 있게끔 브랜치를 파 구현을 해주셨고 아직 실행해보진 못했지만 추후에 다시 API 연결 부분을 점검하며 구현할 수 있게 되었다.
경북대 대동제 웹사이트 제작
https://github.com/LikeLion-KNU/knufest-frontend
경북대학교에서는 지난 4년간 축제를 제대로 하지 못 했다.
아예 못 한 것은 아니고 23년 이전까지는 코로나 때문에 제대로 하지 못 했던 것으로 알고 있다.
2022년도에 축제를 진행했었지만 간소화해서 진행했던 것으로 전해들었다.
2023년도에는 총학이 없는 기간이었기 때문에 축제가 진행되지 않고 각 학부별로 연합해서 진행되는 형태였다.
그러다가 2023년 말에 총학생회가 선출되었고 올해는 축제를 할 수 있을 것이란 기대감에 차 있었다.
그렇게 2024년이 되었고 여름이 시작되는 5월 21일, 축제가 시작되었다.
축제에 대한 넘치는 기대감과 더불어 축제와 관련된 많은 정보들을 인스타로 접할 수 있었다.
그러나 축제 부스와 시간표 같은 데이터들은 알 수 있긴 했지만 총학 공지로는 전체 부스를 표시하기에는 한계가 있었다.
그래서 데이터를 한 서비스에 모아서 학생들에게 보여주자는 목표로 만들게 되었다.
멋쟁이사자처럼 운영진 내에서 시작되었고 점점 아이디어를 구체화해나아갔다.
그래서 4월 말에 멋사 운영진 내에서 같이 할 팀원들을 모집해 프로젝트를 시작했다.
3주 남짓한 시간이었기 때문에 정말 빠르게 개발을 완료해야 했다.
날짜를 정하지 않고 그냥 매일 각자 가능한 시간에 카페에 모여서 코딩을 했었다.
프론트엔드, 백엔드 할 것 없이 최대한 빠르게 코딩하면서 매일 피드백을 주고받아 빠르게 완성시킬 수 있었다.
다행히 기간이 중간고사 이후여서 시험에 구애받지 않을 수 있었다.
그럼에도 다들 학교 생활 하면서 프로젝트를 진행한다는 것이 어려웠을 것이다.
그 부분들에 대해서는 다들 너무 고생 많았다고 생각한다.
나는 휴학중이었기 때문에 다른 팀원들이 개발하지 못하는 시간에 서비스 페이지들을 최대한 구현했다.
주로 구현한 페이지는 메인 페이지, 만든이들, 타임테이블이다.
공통 컴포넌트인 NavigationBar, Footer도 미리 구현해 다른 페이지를 구현할 때 따로 신경 쓸 부분 없도록 했다.
이번 프로젝트를 하면서 컴포넌트의 재사용성에 대해 많이 고민하면서 만들었던 것 같다.
각 페이지마다 그 페이지를 알리는 작은 제목이 있는 것을 볼 수 있을 것이다.
처음에 디자인 할 때 모든 페이지에 있는 제목 부분을 같게 하진 않았었다.
제작하다 보니 같은 기능을 하는데 디자인이 다르다는 이유로 각 페이지마다 스타일 코드를 다르게 쓰고 있는 것이 비효율적이라고 느꼈다.
디자인을 통일시키고 타이틀 컴포넌트를 새로 만들어 각 페이지마다 일관되게 사용할 수 있도록 구현했다.
어떻게 보면 별 것 아니긴 하지만 코드의 재사용성을 높여 개발 속도를 조금이나마 향상시킬 수 있었다.
유지보수 또한 쉬워짐을 느껴서 앞으로 재사용성을 높일 수 있으면 무조건 컴포넌트로 만들어서 재사용할 것이다.
SQLD 자격증 준비 및 시험
원래는 작년에 데이터베이스 수업을 듣고 나서 바로 SQLD 자격증 시험에 도전하려고 했으나 일정상 불가능해 하지 못했다.
그래서 이전 기억을 되짚어보며 다시 데이터베이스 공부를 시작했다.
SQLD 시험을 준비하면서 데이터베이스에 대해 잘 모르고 있었다는 것을 깨달았다.
특히 SQL 활용 부분에서 쿼리문의 결과를 묻는 문제에서 정확하게 어떤 원리로 돌아가는지 제대로 알지 못하고 있었다.
물론 시험 보러 갔을 때 노랭이 책에 있던 길고 복잡한 문제는 보기 힘들었지만, 적어도 어떤 함수가 무슨 역할을 하는지, 그리고 함수의 차이점이 어떤 것인지는 알고 있어야 시험에서 문제를 풀 수 있었다.
확실히 준비할 때 노랭이 책의 문제들을 하나하나 정확하게 풀려고 노력한 것이 도움이 되었다.
어떤 문제는 그대로 출제되기도 했고, 숫자만 바꾼 느낌의 문제들도 많이 나왔다.
다른 기출 문제를 풀어보지 못해 불안했지만, 노랭이 책 한 권을 여러 번 반복해 풀면서 문제에 익숙해지는 것이 많은 도움이 되었다.
여러 번 풀다 보니 내가 약한 부분이 보였고 그 부분을 좀 더 집중적으로 공부할 수 있었다.
특히 조인 쿼리와 서브 쿼리 부분에서 어려움을 느꼈지만 반복적으로 학습해서 보완할 수 있었다.
처음에는 실습을 병행하면서 문제를 풀어야 하나 생각했었는데 실습과 시험 문제를 푸는 것은 별개라는 것을 느꼈다.
테이블을 만들고 쿼리문을 입력해 결과를 알아내는데 시간이 너무 오래 걸려 비효율적이었다.
대신 쿼리문에 대한 결과가 궁금할 때는 ChatGPT를 활용해 알아낼 수 있었다.
항상 정확하진 않았지만 일일이 입력하는 것보다 사진 한 장으로 데이터를 제공하는 것이 시간을 많이 단축시켜 주었다.
앞으로 SQLD 자격증을 준비하는 사람이라면 어느 정도 활용하는 것도 고려해볼만 하다.
서평 작성
실전 스벨트 & 스벨트킷 입문
[서평] 리액트의 대항마 - 실전 스벨트 & 스벨트킷 입문
리액트만 사용해봐서 서평 도서 선택할 때 스벨트는 조금 망설여지긴 했다.
하지만 프론트엔드 스택의 하나로서 스벨트를 배우는 것은 중요한 경험이 될 수 있다고 생각했다.
무엇보다 스벨트가 리액트와 어떻게 다른지, 왜 스벨트가 한때 유행했었고 그럼에도 불구하고 리액트가 아직도 강자로 군림하는 이유를 알고 싶었다.
리액트가 여전히 강자인 이유 중 하나는 사용자 수와 생태계의 규모이다.
많은 개발자가 사용하고 있기 때문에 리액트 관련 자료나 라이브러리, 커뮤니티의 지원이 많다.
당장 리액트 관련 라이브러리를 npm에 들어가서 보면 관심도가 차이나는 것을 볼 수 있다.
스벨트는 상대적으로 사용자 수가 적어서 선택하기 망설여지는 부분이 있다.
사용자가 얼마나 있는지에 따라 라이브러리를 선택하는 것도 하나의 지표이기 때문이다.
그래서 스벨트를 배우는 것이 의미가 없을 수도 있다는 생각이 들기도 했다.
하지만 새로운 기술을 배우는 것은 항상 가치가 있다고 생각한다.
기존에 사용하는 것과 달리 다른 접근 방식을 취하는 프레임워크를 배우는 행동 자체가 기존의 사고 방식을 넓히는 데 도움이 된다.
아래는 책을 보면서 알아낸 몇 가지 차이점이다.
- 컴파일러로 작동해 작성한 코드를 빌드 단계에서 최적화된 JS로 변환한다. 변환된 코드는 런타임에 별도의 프레임워크 없이 직접 실행된다.
- 컴파일 타임에 실제 DOM 조작을 위한 코드를 생성한다.
- 리액트는 가상 DOM을 사용해 상태 변화를 관리하고 UI를 업데이트한다.
- 상태 관리를 위해 내장된 반응형 변수를 사용해 변수를 선언하고 값을 변경하면 UI가 자동으로 업데이트된다.
- 리액트는 Hooks를 사용한다.
- 각 컴포넌트 내에 직접 CSS를 작성하고 해당 컴포넌트에만 적용된다.
- 리액트는 CSS-in-JS, CSS 모듈 등 다양한 방법을 사용한다.
- 컴파일러 기반이기 때문에 빌드 크기가 작고 런타임 오버헤드가 적다. 초기 로드 시간이 빨라 UX에도 유의미한 영향을 줄 수 있다.
- 리액트는 가상 DOM과 상태 관리 라이브러리를 포함해 빌드 크기가 상대적으로 크다.
스벨트를 배우니 리액트에서 몰랐던 부분들까지 알아내는데 도움이 되었다.
이런 경험을 토대로 앞으로 개발할 때 더 다양한 선택지를 가지고 문제를 해결하는 능력을 기를 수 있어서 좋았다.
자바 잘 읽는 법
이 책도 자바이기 때문에 현재 사용하고 있는 자바스크립트와는 거리가 있다고 생각해서 서평 신청할 때 조금 망설여졌다.
그래도 프론트엔드 스택을 배우고 있지만 백엔드를 모르고 프론트엔드를 하는 것은 말이 안 된다고 생각했다.
특히 이 책은 스프링 부트에서 어떻게 에러의 원인을 잡는지 알려주는 것이기 때문에 도구들은 자바스크립트와 맞지 않더라도 오류를 잡는 과정 자체는 언어에 관계없이 유익한 내용이었다.
부록 부분에서는 JVM 메모리 구성, 인스턴스 저장하는 힙, 메모리 관련한 이야기들이 있어 서평 신청을 확정하는데 크게 기여했다.
어떤 언어를 배우더라도 그 밑바탕에는 운영체제와 관련한 CS 지식이 깔려 있다는 것을 최근에 많이 느끼고 있다.
기본 지식이 탄탄해야 어떤 언어를 사용하든 문제를 더 잘 이해하고 해결할 수 있다고 생각하게 되었다.
책을 읽으면서 오류를 분석하고 해결하는 과정에서 중요한 몇 가지 원칙을 배웠다.
- 에러 로그를 통해 문제를 추적하는 방법
- 디버깅 툴을 효과적으로 사용하는 방법
- 메모리 관리의 중요성
이런 원칙은 자바 뿐만 아니라 자바스크립트, 파이썬, C++ 등 다양한 언어에도 적용될 수 있다.
제로초의 자바스크립트 입문
[서평] 프론트엔드 입문서 - 제로초의 자바스크립트 입문
4월부터 유튜브로 제로초님을 접하게 되어 이 책이 서평 신청 도서 대상으로 나오게 되어 매우 기대되었다.
제로초님 유튜브를 열심히 보면서 위의 자바스크립트 책을 출간한다는 영상을 보게 되었다.
그래서 자바스크립트에서 가장 유명한 책인 “모던 자바스크립트 Deep Dive” 책을 언급하면서 ‘그 정도 급은 아니다’ 라는 겸손한 의견을 내주셨다.
개인적인 생각으로는 “모던 자바스크립트 Deep Dive” 책이 너무 어렵다 싶으면 이 책으로 잠시 격차를 줄인 다음에 다시 그 책으로 돌아가는 것도 나쁘지 않을 것 같았다.
이 책은 자바스크립트만으로 프로젝트를 구현해서 DOM 조작을 배우는데 최적화된 책이라고 느꼈다.
예제 프로젝트도 정말 많기 때문에 기본적인 자바스크립트 실력을 늘리고 싶다면 추천한다.
근데 코어 부분은 많이 없는 것 같아 아쉬웠다. 그럼에도 아예 없는 것은 아니기 때문에 기본적인 문법뿐만 아니라 클래스, 비동기, 프로미스 같은 중요한 부분들을 다시 짚어볼 수 있어서 좋았다.
커리어 핸드북
[서평] IT 업계 노하우 에센스 - 개발자를 위한 커리어 관리 핸드북
이번 달 읽은 책 중에서 프로그래밍 언어와 관련이 적은 유일한 책이다.
이 책은 IT 업계에서의 노하우가 모두 담겨있는 커리어 관련 도서이다.
이 책을 서평 신청할 때도, 물론 많은 이유가 있었지만 이번 달에 코드를 다루는 책을 많이 신청했기 때문에 이 책을 선택했다. 결과적으로 많은 도움이 되었다.
아직 커리어가 시작되지 않았고 회사에서 일을 하는 것은 아니었지만 책에서 알려주는 부분들을 현재 내가 궁금해하는 상황들과 매우 밀접했다.
어떤 도구를 사용할지, 인간관계는 어떻게 관리할지 같은 일상적인 고민부터 스타트업으로 첫 직장을 선택해야 할지, 프론트엔드 개발자로 선택하는게 맞는지와 같은 커리어 선택까지 크고 작은 선택에 놓여 있는 나에게 책은 많은 가려운 부분들을 해소해주었다.
책을 읽으면서 이야기하는 내용과 우리나라와의 차이점이 조금 있다고 느꼈다. 아무래도 미국에서 일한 개발자가 쓴 책이기 때문에 그런 것 같다.
그럼에도 개발자가 가져야 할 생각이나 자세 같은 부분에서는 많은 공감이 되었다.
개발자로서의 책임감, 지속적인 학습의 중요성, 동료와의 협업에서 필요한 소통 능력 등 국경을 초월한 공통된 주제 등이다.
특히 3부 일상적인 도구들 부분이 가장 공감이 많이 되었다. 너드 설명서, 개발자의 하루 일과 부분에서는 누군가 우리 집에 CCTV를 달고 적은게 아닌가 싶을 정도로 내 삶과 동일하게 작성되어 있어서 놀랐다.
이 부분을 읽으며 나 처럼 사는 사람이 많아 안도감을 느낀 것과 동시에 많은 개발자가 비슷한 고민을 겪고 있다는 점에서 큰 공감을 느꼈다.
빌런의 역설, 성공적인 발표를 위한 4가지 조언, 결정과 리더십 등 사회에서 바라보는 특정 기준들에 미달인 점들을 알게 되어 좋았다. 이 책을 통해 많이 반성하는 시간이 되었다.
발표 준비를 하는 과정이 오랜 시간을 걸쳐서 일어나는 것인데 그 동안의 준비 과정에서 놓치고 있었던 많은 요소들을 깨달았다.
앞으로 발표를 준비하고 수행하는데 두려움이 줄어들 것 같다.
Mobby 프로젝트 멘토링
작년 9월부터 진행해오던 Mobby 프로젝트가 봄 즈음에 잠시 지연되었다.
개발 관련해서 여러 가지 어려움과 해결책을 파악하는 데 시간이 걸렸던 것 같다.
그러다 프로젝트를 총괄하는 담당자께서 해결책으로 인공지능을 제안하셨고 팀원 전체가 인공지능 관련 멘토링을 받게 되었다.
주기적으로 하는 멘토링으로 단기성이 아니라 앞으로도 계속 참여해야 한다.
이번 달에 시작하게 되어 넣게 5월 정기 회고에 넣게 되었다. 이 멘토링을 통해 앞으로도 방향성을 잘 잡아 프로젝트가 원활히 진행되길 기대해본다.
The Film 프로젝트 보완
AWS S3 배포
기존에는 간단하게 Netlify를 통해서 배포했지만 상업적인 목적이기 때문에 무료로 제공해주는 정책에 위배될 수 있어 AWS로 전환해 배포하는 것이 계획되었다.
프로젝트 제작은 몇 달 전에 완료되었지만 AWS 배포 관련 논의는 최근에 이루어졌고 이번에 변경하기로 결정했다.
백엔드 쪽은 이미 S3로 배포되었고 프론트엔드 부분만 S3로 배포하면 되었다.
배포 자체가 어려운 것은 아니어서 빠르게 진행 후 완료되었다.
그러나…
도메인 설정, CloudFront + Route 53 으로 https 추가
우리 프로젝트는 기기의 카메라를 이용해야 했기 때문에 반드시 보안이 갖춰져 있어야 했다.
https로 실행되지 않는 웹 서비스에서는 기기의 고유한 기능 (GPS, 카메라 등) 을 사용하지 못한다.
그래서 http로 배포된 페이지를 https로 배포해야 했다.
이 글을 작성중인 시점에서 진행 중이기 때문에 관련한 자세한 이야기는 6월 회고록에서 작성할 것 같다.
컴학 동아리 연합 해커톤 준비
다음달인 6/1 ~ 6/2 동안 우리학교 컴퓨터학부 동아리들이 연합해서 해커톤이 개최된다.
이 글을 쓰고 있는 시점에서는 피그마 디자인과 데이터베이스 설계도가 완료된 상황이다.
우리 팀은 4명으로 이루어져 있는데 프론트엔드는 혼자이다.
빠르게 개발해야 해서 관련 이야기는 6월 회고록에서 작성하도록 하겠다.
'Life > 회고' 카테고리의 다른 글
2024년 7월 정기회고 (0) | 2024.08.01 |
---|---|
2024년 6월 정기회고 (1) | 2024.06.30 |
2024년 3월 정기회고 (0) | 2024.04.13 |
2024 AWS 스마트시티 해커톤 후기 (0) | 2024.04.11 |
편입을 준비하게 된 이유 (3) | 2024.01.31 |
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!