알고리듬 #1 | 자료구조와 알고리즘 중요한 이유

HyeonWooGa·2022년 7월 27일
0

알고리듬

목록 보기
1/18

자료구조 + 알고리즘 = 프로그램


자료구조

  • 메모리를 효율적으로 빠르고 안정적으로 데이터 처리하는 것이 궁극적인 목표

알고리즘

  • 특정 문제를 효율적이고 빠르게 해결하는 것이 궁극적인 목표
  • 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것

자료구조와 알고리즘이 중요한 이유


실무에서 중요하게 생각하는 3가지

  • 기초 코딩 능력 (문제해결 능력, 알고리즘)
  • 전문 분야 지식 (프론트엔드, 백엔드 등)
  • 기본 CS 지식 (운영체제, 네트워크 등)

기초 코딩 능력

  • 자료구조와 알고리즘을 공부하면 능력 UP
  • 개발자의 정체성이 되어줄 기초 코딩 능력은 필수다
    • 문제 해결 능력
      • 논리적 사고
      • 전산화 능력 (현실에 있는 것을 컴퓨터의 세계에서 구현하는 것)
      • 엣지 케이스 탐색 (예외 사항을 잘 찾는 능력)

일머리 === (논리적사고 + 전산화 능력 + 엣지 케이스 탐색)


자료구조와 알고리즘은 변하지 않습니다.

  • 다이스트라 알고리즘은 1956년인 알고리즘이지만 아직도 사용됩니다.

실제 사례

  • 상황
    • 100만개의 고객 데이터를 최신으로 업데이트하기 위한 배치 작업 필요
  • 구현
    • 100만개 데이터를 매번 순회하며 고객을 찾은 후 업데이트, 없다면 추가
  • 결과
    • 계산 결과 100만개를 처리하려면 5일이 넘게 걸려서 다시 로직을 작성해야 했음
  • 개선
    • 해시 테이블, 링크드 리스트, 이진 탐색을 사용하여 20분만에 100만개 데이터를 처리

마무리

사실 저는 알고리즘에 관해서 개발, 이론공부를 많이 하다보면 자연스럽게 늘어가는 것이라고 생각했었습니다.

하지만 계속 직접 개발을 하거나 공부를 하면서 알고리즘의 중요성을 많이 느꼈습니다.

사고력 향상, 프로그래밍 언어능력 향상 + 페어나 스터디로 같이 알고리즘 문제를 논의 하면서 소프트스킬도 향상됨을 느꼈습니다.

구인을 원하는 기업도 위와 같은 부분을 알기에, 그리고 알고리즘(코딩 테스트) 또한 실제 개발의 하나의 컴포넌트를 개발하는 것과 같기 때문에 구직자들의 업무 능력의 판단 도구로 사용되는 것 같습니다.


알고"리듬"에 타고 신나게 달려보겠습니다.


profile
Aim for the TOP, Developer

0개의 댓글