WIL - 항해99 2주차 회고

·2022년 5월 22일
0
post-thumbnail

알고리즘 1주차가 끝났다!
항해 총 기간으로는 2주차가 끝이 난건데, 2주가 아니라 2개월이 지난 것 같다.
이게 재미없고 억지로 해서 시간이 느리게 간다기보단...
2주동안 너무 많은 일들이 있다보니까 아직 적응중이다보니 한주가 굉장히 길다.

근데 알고리즘을 풀면? 타임워프의 기적이 일어난다
몇시간동안 공부하고 나중에 내가 푼 문제를 보면
아 그래서 고작 이거 풀었다고? 하고 있음 -> 오늘 나 뭐했지..?

알고리즘을 도전해보겠다고 마음 먹은 목표는 이렇다.

  • 컴퓨터공학 분야를 접하고 배워서 비전공자의 벽을 조금이라도 깨보자.
  • 자료구조와 컴퓨터식 사고를 이해해서 클라이언트를 구현할 때 최적화된 코드를 작성 하자.
  • 마음에 드는 회사가 코딩테스트를 본다고 지원을 포기하는 것을 해결하자
  • 알고리즘을 잘 풀면 간지가 난다✨

아직 1주차밖에 안되었기 때문에 목표를 달성했다고는 할 수 없지만,
여기서 이제 1,2의 목표를 달성하는 방법은 어렴풋이라도 알 것 같다.

우선 이전의 내 코드에서 자주 나오는 패턴은 아래와 같다.

API가져오기 (){
	data = ajax.get(API)
    array = data.map(필요한 데이터 배열 리턴)
    for(){
    	for(){
        	배열 탐색....

무언가를 가져오고 탐색할 때 대부분 이런식의 틀에서 바뀌지 않는다.
물론 프론트엔드다보니까 데이터를 크게 가공할 일이 없어서이기도 하지만 받아올 데이터를 어떤식으로 접근해야 최적화를 할 수 있을지, 내가 쓴 코드의 시간복잡도는 어떨지에 대한 고려를 하지 못했다.

하지만 알고리즘을 배우니, 내가 그동안 작성해왔던 코드가 얼마나 리소스를 낭비하고 있었을지 조금씩 깨닫게 되기 시작했다.

한주 동안 배열과 링크드리스트의 장단점,
데이터를 저장하고 꺼내올 때 상황에 따른 큐 방식과 스택 방식의 효율성 차이를 익혔다.

또한 배열과 해쉬테이블의 시간복잡도 차이를 프로그래머스 문제에서 직접 겪어보니 (무려 200배 차이가 났다)
앞으로 어떤 것을 위해 컴퓨터식 사고를 해서 코드를 작성해야한다는 느낌적인 느낌이 오고있다.
왜..알고리즘을 해야한다는 건지 알 것 같아..!👍


누가 프론트엔드에게 알고리즘이 필요 없다고 했는가?
물론 알고리즘을 몰라도 프론트엔드 구현은 할 수 있다.

그러나 프론트엔드의 특성상 알고리즘을 실무에서 쓸 일이 드물 뿐이지,
알고리즘을 아는 개발자와 모르는 개발자의 차이는 언젠가 드러나게 될것이라고 생각이 들었다.

그 차이는 바로 최적화에 있을 것이라 생각한다.


물론 실무에서 당장 기한 내에 눈앞에 놓인 기능을 구현해야하는데 뭐? 최적화? 그런거 알게뭐야긴 하다.
하지만 데이터가 많아질 수록, 서비스의 기능이 늘어나면서 무거워지는 앱을 보며
우리는 언젠가 최적화를 할때가 오고야 말 것이다..

또한 앱의 속도는 사용자 경험에 매우 중요하다. 로딩에만 10초가 걸리면 누가 그 앱을 쓰고싶을까?
그리고 클라이언트는 프론트엔드의 영역이다.


그런데
위에 뭔가 아는 것 처럼 적었지만 사실 이 상태이며, 앞으로도 그럴 예정이다..
특히 그래프,BFS,DFS는 아직 익숙하지 않는 재귀함수의 방식과 점점 더 어려워지는 문제의 구현력에 내 한계를 많이 부딫히고 있다.
사실 99일이라는 항해 특성상 3주동안 이 모든걸 완벽히 익히기엔 무리가 있는 일정이기도 하다.

또한 자꾸 잘하려고 할 수록 스트레스가 쌓인다
나는 그저 개념과 기본 방식을 익히기에도 매우 벅차다..
그런데 누군가는 너무나도 쉽게 풀어내는 반면에 나는 5시간을 붙잡아도 이해를 못한다고 자꾸 비교를 하게 되는데
이런 잘 하고자 하는 마인드를 버리고 겸손한 마음을 먹어야 내가 롱런할 수 있을 것 같다.

누군가가 알고리즘을 잘하면 나는 다른걸 잘 하면 된다.
나에게도 다른 장점이 있음을 잊지말자 😃

  • 알고리즘을 잘 풀면 간지가 난다✨

그래도 이 목표는 과감히 버려야 할 것 같다😂 간지? 그런거 나에게 있을 수 없었다..

나는 아직 저기 그래프에 (0.1,0.1) 정도에 있을것이다

그래도 알고리즘의 ㅇ도 몰랐던, 프로그래머스 1단계도 겨우 풀어봤던 내가
이제 2단계까지는 어? 이거 풀렸네? (왜?) 하고 있는걸 보면 나름 성장한게 보여 뿌듯하기도 하다.

아 그리고

"오? 나 지금 파이썬으로 하고있어!"

라는 생각이 들때 좀 뿌듯하다.
난 자바스크립트밖에 모르는 바보였기 때문에.... 그렇다고 자바스크립트를 잘하는 것도 아니었지만!


아무튼 알고리즘 1주차 끝! 이제 2주 남았다!
항해 리액트 주특기 사람들이랑 요즘 가장 하고싶은게 create-react-app이라는 농담을 했다. (사실 농담아니다)
그래도 내가 선택한 알고리즘, 악으로 깡으로 함 버텨보자😎

profile
나 예인쓰, 응애인디

0개의 댓글

Powered by GraphCDN, the GraphQL CDN