The journey to becoming a developer

My future is created by what I do today, not tomorrow.

What I learned/TIL

[Fri/8/5/2022] Today I Learned

Millie 2022. 8. 6. 01:53

 

1. Learned = Facts + Findings 

# Project

타입을 주지 않아서 타입 에러가 났던 부분을 고쳤다. Type Guard도 활용을 했다. 

useQuery를 쓰면서 중복되는 코드를 리팩토링하고, hook으로 만들어서 로직을 좀 더 간단하게 만들었다. 

 

# [5pm] Peer Session 

오늘의 피어 세션은 도비, 베르, 에스와 함께했다. 간만에 만나는 코드스쿼드 멤버들이라 반가웠다! 근황토크를 잠깐 한 후 발표를 시작했다. 

베르는 폐관수련을 하며 토이프로젝트를 한 결과물과 과정을 공유해 주었는데, 정말 완성도도 높고 UI를 잘 만들었다는 생각을 했다. 

도비는 도톨, 백엔드, IOS 멤버와 함께 프로젝트를 진행하고 있는데 Jest를 썼을 때 에러가 났던 부분을 공유해주었고, MSW 사용 시 팁을 알려주었다.

에스는 정렬 알고리즘을 공유해주었다. Merge sort, Radix sort, 그리고 Quick sort인데 나도 에스처럼 잘 설명하기 위해 시간 투자가 많이 필요하다고 느꼈다. 

나는 어제와 오늘 정리한 자바스크립트 - ES6 함수의 추가 기능에 대해서 발표했다. Deep Dive 책을 읽고 노션에 정리를 해봤다. 

 

# Dream Coding 엘리님의 10만 구독자 Q&A 영상을 보며

운동을 하면서 평소에 뭔가를 들으면서 하는 편은 아닌데, 오늘따라 뭔가 듣고 싶었다. 유튜브를 켰는데 드림코딩 엘리님의 영상이 추천으로 떠서 이 영상을 들으면서 운동했다. 작년 11월의 영상이고 당시에도 한 번 봤던 것 같은데 복습삼아서 또 봤다. 

거의 1시간 분량의 영상 중 인상 깊었던 부분은 '프론트엔드 개발자의 한계' 부분이었다. 

엘리님은 프론트엔드 개발자가 UI 부분만 개발하고, 그부분만 알아도 된다고 생각하며 스스로의 한계를 지어버리는 사람들을 많이 만나봤다고 한다. 하지만 그런 식으로 한계를 짓는 것은 위험하다고 하시며 JavaScript 언어에 대한 이야기도 덧붙였다. JavaScript는 타입도 없고, 동적으로 결정되는 언어이며, 코드를 더럽게 짜면 끝도 없게 더럽게 짤 수 있다💩. 유지보수도 전혀 안 되고, 이해하기도 어렵게 되는 것이다. 이런 언어로 프로그래밍을 하는 것은 한계가 있다. 즉, 자바스크립트만 알고 DOM만 좀 조작할 줄 안다고 프론트엔드 개발자가 되는 것은 아닌 것이다. 프론트엔드 개발은 진입장벽이 정말 낮다. 전공 지식을 몰라도 HTML, CSS, JavaScript로 DOM 요소를 조작하는 법을 배워서 금방 웹 사이트를 그럴듯하게 만들어낼 수 있다. 하지만 그것만 가지고 그 사람이 Frontend Developer라고 말할 수는 없다는 것이다. 

엘리님이 말하는 Frontend Developer란?
  • 어떤 Web Application이든, 어떤 Business Logic 로직을 담고 있든, 복잡한 로직이 주어졌을 때도 이것을 설계해서 Client 단에서 만들어갈 수 있는 사람. 단순 기능 구현만 할 수 있는 것이 Frontend Developer는 아니다. 
  • 필요한 기능을 빠르게 배우고 적용해서 만들어낼 수 있는 사람, 단순 기능 구현에서 그치지 않고 확장성, 재사용성, 유지보수성을 염두에 두면서, 내가 작성하는 코드가 테스트가 가능하게, 이것이 자동화되도록 만들 수 있는 사람

디자이너들도 HTML, CSS, JavaScript, React를 할 줄 안다고 한다. 보통 이분들은 React로 버튼 같은 요소들을 만들 수 있다고 한다. 그런데 개발자라면 애플리케이션의 전체적인 설계나 전체적인 비즈니스 로직을 이해할 수 있어야 한다. 이것이 개발자와 비개발자를 구분짓는 중요한 요소라고 한다.

 

결론! 

나의 역량 혹은 프론트엔드 개발자의 역량을 좁은 곳에 한정해두지 말고, 대체 불가능한 사람이 되기 위해서 다양한 방면으로 준비하고 공부하는 것이 중요하다. 

나를 확장해서 언제든지 다양한 것을 구현하고, 다른 분야로도 이동할 수 있는 사람이 될 수 있도록 노력하자! 

백엔드 부분도 이해할 수 있게 범위를 서서히 넓혀 가면서 공부해야겠다는 생각이 들었다. 

또한 단순히 UI를 잘 구현했다는 것, 혹은 일부 기능을 구현했다는 것에서만 만족하지 말고 전체적인 시야로 개발 프로세스를 바라보는 것과 Test를 잘 해서 유지보수성을 높이는 코드를 짜는 것도 중요하다는 것도 배웠다. 아직은 기능 구현도 쉽지 않은 레벨이지만, 기능 구현이 끝이 아니라는 것을 염두에 두고 차근차근 성장해 나가자. 

 

# Algorithms 

내일 오후 2시에 있는 토스의 코딩테스트에 대비해서 문제를 풀어보았다. 메일로 친절하게 모의 테스트를 볼 수 있는 링크도 와서 그 문제도 풀어보았다. 

프로그래머스에서 스킬 체크 레벨 2의 2문제를 풀었다. 그 중 한 문제는 바로 4월달에 풀었던 '캐시'였다. 

 

프로그래머스 레벨 2 : [1차] 캐시 (자바스크립트)

Description 코딩테스트 연습 - [1차] 캐시 3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju..

jaypedia.tistory.com

4월 24일에 올렸던 이 글을 참고해서 캐시 알고리즘도 복습해봤다. 확실히 푼 시간은 짧아지긴 했지만 풀이는 크게 달라지지는 않았고 거의 동일했다. 

 

2. Well done

# Pomodoro Technique

유명한 '뽀모도로 테크닉'을 활용해서 공부중이다. 25분 집중 공부, 5분 휴식을 전부 다 지킨 건 아니지만 확실히 효과가 있었다. 원래 한 세션을 50분~1시간 정도로 길게 가져갔었는데 이럴 때 문제가 딴 짓을 가끔 하게 되는 것이었다. 그런데 세션이 25분으로 짧아지니 이 시간 동안은 정말 다른 것 쳐다보지 말고 이것만 하자고 결심하게 되고, 실행하게 되었다. 이름 그대로 정직한 'Pomodoro' 라는 어플을 다운받아서 사용하고 있는데 UI도 심플하고 딱 필요한 것만 있어서 괜찮은 것 같다. 어플이 사용하기 편하고 복잡하지 않고, 색깔이 눈이 편한 파스텔톤이다.

 

3. Lacked

# 오전 시간을 효율적으로 보내지 못한 것 

프로젝트에 온전히 집중해야 할 오전 시간인데 아침 식사를 너무 많이 했고 더위까지 겹쳐서 많이 늘어졌다. 다행히 어제처럼 낮잠으로 시간을 버리진 않았고 잠시 누워서 휴식만 취했다. 나는 아침을 가볍게 해야하는 스타일인 걸로..😇

 

4. Tomorrow

# Toss Coding Test & 회고

# JavaScript 스터디

# English 스터디 대비 

# TypeScript 스터디 대비

스터디로 가득가득한 토요일 일상 + 코테까지.. 토요일을 바쁘게 보낼 예정이다.

 

5. Etc 

# 팜레스트 도착

무접점 키보드로 바꾼 후 키보드 높이가 높아서 수건을 접어서 손목을 받쳐서 쓰고 있었다. 그러다가 팜레스트가 필요하겠다는 생각을 하게되었고 그게 오늘 도착해서 사용하고 있는데 정말 타이핑의 질이 많이 올랐다! 블로그 글을 자꾸만 더 길게 쓰고 싶어진다. 오늘 타이핑을 정말 많이 했다. 손가락에 힘을 많이 안 줘도 쳐지니까 손이 피로하지 않고, 타자가 빨라져서 좋다. 

 

# 해커톤 대비? 

8월 19일에 Junction 해커톤에 참여하게 되었는데, 인생 첫 해커톤이어서 어떻게 준비하면 좋을까 고민하고 있다. 그러다가 코드스쿼드 Jane의 해커톤 참가 후기를 보게 되었고 많은 도움이 되었다! 어떤 식으로 진행되는지를 알 수 있었어서 좋았다. 첫 해커톤이라고 해도 당황하지 말고 차근차근 잘 만들어 나갔으면 좋겠다. 

'What I learned > TIL' 카테고리의 다른 글

[Sun/8/7/2022] Today I Learned  (0) 2022.08.08
[Sat/8/6/2022] Today I Learned  (0) 2022.08.07
[Thurs/8/4/2022] Today I Learned  (0) 2022.08.05
[Tue/7/12/2022] Today I Learned  (0) 2022.07.13
[Mon/7/11/2022] Today I Learned  (0) 2022.07.12