TIL (Today I Learned) : 2023년 11월 23일
안녕하세요?
벨로그의 첫 시리즈 마감이네요.
저의 개발 블로그에 방문해 주셔서 감사합니다.
개발자북클럽 리딩 챌린지 후기
- 2주 동안 함께 책을 읽으며 공감하는 시간을 경험하는 것 만으로도 매우 보람있고 값진 시간이었다. 매일 챌린지를 하나씩 클리어할 때마다 약간의 의무감도 있었지만 혼자 읽는 다면 세월아 내월아 했을 텐데, 그런 고민할 새가 전혀 없으니 자연스럽게 집중할 수 있었던 거 같다.
- 진정한 풀스택 개발자가 되기 위해서는 프론트엔드, 백엔드, 데브옵스 영역의 기술 트렌드에 지속적으로 관심을 가지고 다양한 IT 관련 서적, 강의, 챌린지와 세미나 등의 오프라인 소통으로 경험한 것들을 잘 융합하여 나만의 특별한 노하우로 만들어 가는 과정이 무엇보다 중요하다고 생각한다.
- 최근 몇달 동안 노마드코더의 다양한 강의와 챌린지를 경험해 보니, 하나의 토픽을 스프린트 방식으로 집중해서 학습했을 때에 매우 효과적임을 몸소 체험했고, 특히, CSS 마스터 챌린지 과정은 정말 값진 경험이었다. 새해엔 벨로그를 방문하는 분들과 함께 도전할 수 있는 나만의 챌린지를 만들어 보고 싶다~:)
떠오르는 생각 요약
- 오랫동안 사용했던 프로그래밍 언어, 프레임워크, 라이브러리, 플러그인을 언젠가는 떠나보내야 할 때가 다가온다. 새로운 트렌드에 맞게 기술 스택을 갈아타야 할 때가 되면 그 동안 함께 한 소프트웨어에게 감사의 굿바이를 보내고 미련 없이 깔끔하게 잊어버리자~:)
- 개발 단계부터 알고리즘 최적화를 고려해서 코딩을 하면 더할 나위 없이 좋겠지만, 일정 내에 기능 구현이 우선 순위가 높다 보니, 항상 놓치게 되는 거 같다. 새로운 기술을 도입할 경우나 개발 스프린트 단계별 검증 시에 기능 테스트와 함께 기본적인 성능 테스트도 함께 진행하여 추후 개선해야 할 이슈로 관리해도 좋을 거 같다.
- 클린 코드 백서와 같이 팀 내의 모든 개발자가 반드시 지켜야 할 코딩 가이드라인을 정하고 충분히 공감대를 이룬 상황에서 함께 개발을 한다면, 팀 동료와의 코드 리뷰 시간에 기분 좋게 깔끔해진 코드를 보면서 좀 더 생산적인 피드백을 주고 받을 수 있겠죠~:)
- 절차지향, 객체지향, 함수형, 리액티브 프로그래밍 패러다임 모두 장단점이 있기 때문에 필요한 상황에 따라 절충하여 함께 활용할 수 있도록 나만의 노하우를 찾기 위해 오픈 마인드로 끊임없이 도전하는 일련의 과정이 소중한 경험이 아닐까.
- 웹, 모바일, 데스크톱, 서버리스 등 다양한 형태의 어플리케이션 서비스가 있고, 또한 이를 개발할 수 있는 언어와 도구도 매우 다양하다. 스스로에게 강력한 동기부여가 될 만한 목표를 찾고 그것을 달성하기 위해 하나의 언어로 할 수 있는 최대한 다양한 프로젝트를 경험해 보고, 충분히 시도해 보았다면, 또 다른 언어와의 조합으로 시야를 점점 넓혀 가는 방식으로 도전하는 과정 속에서 나만의 내공이 쌓이리라 믿는다.
기억하고 싶은 내용 요약
- 개발에서는 재능이 아니라 포기하지 않음이 더 중요하다.
- 프로그래밍으로 무엇을 하고 싶은 지를 먼저 생각하자.
- 프로그래밍 언어에 담긴 철학, 코드 구조, 개념, 패턴을 공부하는 것이 정말 중요하다.
- 새로운 언어를 습득하고 나만의 프로젝트 만들 때, 이미 만들어 봤던 주제로 도전해 봐.
- 문제가 생겼을 때 나 자신을 문제에서 빼지 말 것
- 크롬 웹스토어 추천 익스텐션 : ColorZilla, Momentum, CSS Viewer, React Developer Tools, WhatFont, Grid Ruler, BuiltWith Technology Profiler
- 풀스택은 프런트엔드, 백엔드, 데브옵스다
- 효율적인 코드, 속도가 빠른 코드를 고민하게 될 때, 자료구조와 알고리즘이 필요해
- 클린 코드란 읽기만 해도 이 코드가 무슨 일을 하는지, 어떤 것을 의미하는지 물어볼 필요도 없이 스르륵 이해되는 코드
- 프로그램은 책임 있게 만들어야 하고, 끊임없이 관리해야 한다.
- 가장 안전하게 비밀번호를 저장하려면 해시 함수에 솔트를 추가해
- 프로그래밍 패러다임이란 프로그래머가 프로그래밍을 할 때의 관점, 방식, 또는 프로그래밍을 하는 사고의 틀
- 딥러닝은 머신러닝의 하나이고, 머신러닝은 인공지능을 만드는 데 필요한 방법으로 크게 지도학습과 비지도학습이 있어
- 크로스 플랫폼 앱은 개발자가 익숙한 언어로 한번만 작성해도 iOS, 안드로이드 두 환경에서 실행할 수 있고, 네이티브 앱의 성능을 아직 따라 갈 수 없으나, 가성비는 최고임
- 바이러스는 숙주가 필요한 반면, 웜은 숙주가 필요없어, 웜은 자기 자신을 복제하면서 전파돼는데 대표적으로 멀웨어가 있어
2주 동안 읽은 전체 토픽
- 개발자에 대한 오해 5가지!
- 어떤 언어부터 공부해야 할까?
- 새 언어를 쉽게 배우는 노하우?
- 언어 이름은 왜 그렇게 지었을까?
- C, C++, C#은 이름처럼 비슷할까?
- 왜 나만 오류가 자주 생길까?
- 파이썬은 왜 이렇게 인기가 많을까?
- 파이썬이 C 언어보다 느린 이유는?
- 자바스크립트는 웹 개발에만 쓰는 언어일까?
- 코틀린은 정말로 자바와 100% 호환될까?
- 라이브러리와 프레임워크, 비슷한 거 아냐?
- 제이쿼리는 반드시 배워야 하는 기술일까?
- 그놈의 API, 대체 뭐길래?
- 도메인은 왜 돈을 주고 사야 할까?
- 플래시의 서비스 종료와 스티브 잡스
- 인터넷 익스플로러가 사라진 이유와 브라우저 버전
- 아, 쿠키가 먹는게 아니라고요?
- 프런트엔드, 벡엔드?
- 서버가 뭔지 모른다고?
- 슈퍼 개발자만 할 수 있다. 풀스택?
- 서버리스는 서버가 없다는 뜻?
- 자료구조와 알고리즘은 필수라고?
- 배열이 뭐죠?
- 알고리즘의 속도는 어떻게 표현할까?
- 검색 알고리즘이 뭐죠?
- 정렬 알고리즘이 뭐죠?
- 스택, 큐가 뭐죠?
- 해시 테이블이 뭐죠?
- 개발자 필수 소양, 클린 코드!
- 코로나가 준 레거시 시스템의 교훈
- 데이터와 단짝 친구, SQL
- NoSQL이 뭐죠?
- 깃 & 깃허브, 똑같은 거냐고?
- 버전을 표기하는 방법도 있어요?
- 비밀번호는 어떻게 저장될까?
- 객체 지향 프로그래밍이 뭐죠? (1)
- 객체 지향 프로그래밍이 뭐죠? (2)
- 함수형 프로그래밍이 뭐죠?
- 인공지능, 머신러닝, 딥러닝, 아직도 구분하기 힘들다고?
- REST API라니, 휴식 API인가? 이게 대체 뭐죠?
- 도커가 뭐지? 왜 필요할까?
- 암호화폐의 비밀
- 하이브리드... 앱? 뭐라고요?
- NFT가 도대체 뭐길래?
- 멀웨어, 바이러스, 월 개념 몽땅 정리
3줄 요약 (#book-club-it-dictionary)
새해 도전 예정인 니꼬샘 챌린지
- 우버이츠 클론
- 에어비엔비 클론
- 틱톡 클론 (4주 챌린지가 나오면...)
- 노마드코인 클론 (챌린지 형태로 나오면...)
- @@@ 데스크탑앱 클론 (새로운 언어로 나온다면...)
2주 동안 시간가는 줄 모르게 즐거웠습니다.
새로운 리딩 챌린지가 기다려지네요.
모두들 고생 많으셨습니다.
감사합니다.