항해의 여정(9)

qoqo_mi·2022년 5월 17일
0

항해99

목록 보기
9/23

⚡️ 알고리즘 시험 모의고사

  • 모의고사는 ‘제출’에 의미를 두고 ^^..
  • 이번주 내내 코드화시키고 새로운 함수를 배우고 클린코딩처럼 간결하게 만들어보는 작업(을 많이 하지는 못 했지만) 이 작업이 “왜?” 필요한지에 대해 알아봤다.
  • 지금 알고리즘 문제를 풀면서 왜? 간결하게 코드를 짜고 왜??자꾸 코드를 줄여서 작성하고 대체 이 문제를 우리가 왜 풀어야 하며 .. 내가 프론트엔드를 하면서 왜 이것까지 해야하는지의 대한 의문에 대해 간단하게 적어보려한다.

❓ 우리는 왜 데이터구조와 알고리즘을 해야할까

  1. 큰 회사를 가고 싶어서 ? 하지만 그렇다면 작은 회사를 갈 생각이라도 알고리즘과 데이터구조를 안해도 되는 것일까?
  • 그렇다고 코드를 최적화하는 과정을 득달같이 하는 이유가 동료와 협업할 때 코드를 서로 잘 이해하기 위해서’만’ 하는 것은 아닐 것이다.(분명 이 이유도 있을 것이다.)
  • 하지만 처음에 지금 나와 같은 코린이는 데이터구조와 알고리즘을 공부할 필요는 없다. 일단 ! 코드가 굴러가는 게 중요하니까 !
  1. 그럼 언제 필요하다는거야 ?
  • 배포도 끝났고 코딩도 끝났고 소스에 버그도 없는데 해당 어플이 넘나느릴때 ! → 효율적이고 최적화해서 빠르게 만들고 싶을 때 사용한다.
  • 알고리즘이라는 것은 어떠한 액션을 수행하기 위해 컴퓨터가 수행해야 하는 것들이다.
  • 우리가 매일 아침 밥을 먹고 커피를 먹고 생활 패턴 알고리즘이 있는 것과 같이 이 알고리즘도 그렇다.
  • 분명 좋은 알고리즘 코드라면 반복해서 사용할 수도 있고 목적을 달성하기 위한 여러개의 행동이라고 생각하면 좋을 것 같다. 여기에 행한 결과도 산출할 수 있으니까
  1. 너는 알고리즘 시험봤다면서 데이터구조는 왜 얘기하니.. ?
  • 데이터구조는 세상의 기름과 같다. 모든 사람들의 데이터를 다루기 때문이다.
  • 우리가 다른 서비스를 무료로 제공받고 있는 이유도 무료로 우리의 데이터를 수집할 수 있게 넘겨주기 때문이기도 하다.
  • 결국 데이터 구조는 이 데이터들을 여러방법으로 정리하는 것이다.
  • 멋져보이려고 정리하는 것이 아닌 ! “어떻게”정리하느냐에 따라 스피드에 영향을 주니까 서비스가 느려지거나 빨라지는 것이 이에 영향을 줄 수 있다.
  • 데이터구조는 또한 어떤 선택을 하느냐에 따라 갈린다. 그 중 제일 심플하게 사용하는 것이 “arrays”다.

❓ 배열이 그렇게 중요한 이유는 뭘까 ?

  • 컴퓨터는 메모리의 구조가 휘발성메모리 비휘발성 메모리가 있다.
  • 그 중 휘발성 메모리에는 Ram이 있는데 Random Access Memory라고 한다. 말 그대로 랜덤으로 메모리에 접근한다는 말이다.
  • 아래 그림을 보자


  • 이해가 잘 되서 가져온 장면이다.
  • 위에 말대로 박스그룹으로 생각하고 그안에 Memory Address 를 통해서 데이터를 효율적으로 찾을 수 있다.
  • 이것이 우리가 배열을 쓰는 이유의 본질적 기초이다.

Ref. 개발자라면 “무조건”알고리즘 공부를 해야할까 ?

  • 법적 문제가 있을 시 삭제함.

📚 Cs스터디 진행


내일 목표

  1. 알고리즘 40번까지 풀기
  2. cs스터디 정리
  3. 노션 하루일지 정리

0개의 댓글