일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 2세대 암호화폐
- 점근 표기법
- nextjs
- SvelteKit
- 리액트 훅 폼
- svelte
- 밸리데이션
- vscode
- 퀵 정렬의 성능
- velog
- React Hook Form
- 그림으로 공부하는 IT 인프라 구조
- Bio-O-Notation
- 힙 정렬
- tailwindcss
- webpack
- 리액트
- 계수 정렬
- 3세대 암호화폐
- 알고리즘
- vite
- 도커
- Nestjs
- Java
- Introduction to Algorithms
- 자료구조
- 프론트
- 블록체인
- 스마트 컨트랙트
- 우선 순위 큐
- Today
- Total
ki hyun's 개발블로그
알고리즘 공부를 시작하며 본문
알고리즘을 공부하려는 이유
먼저 알고리즘을 공부하려고 마음먹은 계기는 내가 만드는 프로그램들을 유지 보수하면서부터 시작됐다. 나는 전형적인 P이기 때문에 개발을 할 때도 큰 계획 없이 그때그때 구현하고 싶은 기능을 빠르고 생각 없이 구현했다. 이런 식으로 생각 없이 만든 코드가 늘다 보니 여러 문제가 생기게 되었는데...
1. 프로그램의 속도가 느려진다.
별 생각 없이 코드를 짜다 보면 코드의 효율성과 속도는 딱히 신경 쓰지 않고 진행하게 된다. 처음에는 별문제가 없어 보이지만 프로젝트를 완성하고 보면 X 같은 최적화에 엄청난 속도를 보여주는 프로그램을 만날 수 있었다.
2. 내 코드가 왜 작동하는지 모른다.
아무 생각없이 코드를 짜는 나
물론 왜 동작하지 않는지도 몰랐다..ㅎ
아, 너 개발자라고?
그 말은 너 스택오버플로에서 코드 배껴쓴다는뜻이지?
너 지금 우리 업계사람들 전체를 모욕하고 있다는거 아냐?
그치만 맞아.ㅡㅡ
3. 유지보수가 매우 힘들다.
첫 프로젝트를 완성하고 몇 개월 후 프로그램에서 에러가 발생하여 버그를 고쳐야 하는 일이 있었다. 몇 개월 전에 작성한 나의 코드를 보니 정말 한심하기 그지없었다. 프로젝트 구조는 엉망으로 되어있고 코드도 어디 블로그에서 복사해온 코드들이 난잡하게 흩어져있어 내가 작성한 코드임에도 불구하고 단 하나도 알아볼 수가 없었다. 결국 에러의 원인을 찾아내어 고치긴 했지만 다신 그 프로젝트에 손도 대기 싫을 정도로 유지보수가 힘들었다.

4. 결론
이러한 이유로 인하여 나는 내 코딩 실력의 심각성을 느끼게 되었고 이 문제를 해결하기 위해 여러 방법을 찾던 중 여러 책을 발견하였다.
1. Introduction to Algorithms

물론 중학교 수학도 다 못 배운 나한텐 더럽게 어렵다.
2. 프로젝트가 서쪽으로 간 까닭은
이 책들을 찾고 나서 바로 2권 모두 구매하고 싶었지만 Introduction to Algorithms은 무려 47,000씩이나 하는 비싼 책이였기 때문에 Introduction to Algorithms만 먼저 구매하기로 했다.
결론
- 이제부턴 무작정 새로운 기술을 배우고 무언가를 만들어보는 것을 넘어 컴공의 기초를 쌓는 공부를 해야겠다고 생각했다.
- Introduction to Algorithms을 읽고 TIL을 시작하자 (최소 하루 5장씩)

'알고리즘' 카테고리의 다른 글
퀵 정렬의 성능 (0) | 2022.05.30 |
---|---|
퀵 정렬 (0) | 2022.05.30 |
우선순위 큐? (0) | 2022.05.30 |
Bio-O-Notation(점근 표기법)은 무엇인가? (0) | 2022.05.30 |
힙 정렬에 대해 알아보자 (0) | 2022.05.30 |