개발자라면 '무조건' 알고리즘 공부를 해야할까?
큰 회사에 들어가기 위해서는 어려운 면접질문 & 코딩테스트가 필요하니까 공부가 필요하다...
하지만 그게 아니라면 ??
알고리즘이랑 데이터구조에 대해 자세히는 몰라도 뭘 만들수는 있다
어떻게든 돌아가는 코드를 만들었지만
코딩해서 배포까지해서 돌아가는거까지 확인했는데 겁나 느려....
아이거 내가 알아볼수는 있는데 협업할때 너무 불편해.. 관리하기도 어렵네..
어떡하지???
때문에 우리는 궁극적으로 코드를 더 멋지게! ------>> 코드 최적화 / 클린코드를 만들어야한다.
코드 최적화 / 클린코드는 바로 자료구조와 알고리즘을 알아야 적용이 가능하다!
자료구조와 알고리즘을 제대로 이해해야 실전 code에 적용을 할수있다!
알고리즘 = '여러개의 지시사항' 이라고 알면된다.
즉 어떤 액션을 수행하기 위해 컴퓨터가 수행해야 되는것인데
효율적인 알고리즘을 찾으면 그걸 반복적으로 사용이 가능!
-> 알고리즘 선택에서 중요한 두가지 : 시간복잡도 & 공간복잡도
데이터구조에 있어서 DATA는 기름 oil이다
Data가 있어야 AI를 훈련시킬수있어서 기름이라고 할수있다.
프론트개발자라면?
백엔드에서 온 json데이터로 아름답게 브라우져에 표현!
백엔드개발자라면?
DB를 직접적으로 다뤄야된다! 데이터 검색, 편집, 수정, 추가하는 일!
결국 '데이터 구조'는 데이터를 정리하는 방식!
멋있어 보이려고 정리하는게 아니라 잘 짜여진 데이터 구조는
프로그램 Speed에 영향을 준다!
때문에 어떠한 작업이 어떠한 데이터 구조를 언제, 어떻게 쓰는지 아는것이 App의 Speed를 결정한다!
Ex)언제 Linked List를 Arrays대신에 사용할지?
언제 어떻게 쓸지 알려면 각 데이터 구조의 이해도가 있어야 한다.
보통은 4가지 오퍼레이션 상황에 따라 결정하게 되는데
- Order (순서)
- Unique(중복)
- Search(검색효율)
- modification(수정효율)
요 4가지 상황을 염두하고 데이터를 보면 어떤 상황에 어떤 데이터구조를 써야할지 알수있다
정리하자면,
우리는 개발자로서 효율적인 협업과 편리한 관리, 그리고 더 빠른 프로그램 처리를 위해
데이터구조와 알고리즘을 배워야한다!
'코딩조각' 카테고리의 다른 글
| [Spring] Servlet과 Spring MVC (0) | 2022.08.15 |
|---|---|
| 세션 vs 쿠키 (0) | 2022.08.06 |
| [java] 조건문 사용하는 이유, if /else /else if 사용법 (0) | 2022.07.29 |
| [Spring] spring jpa localtime between (0) | 2022.07.27 |
| [java]PUT PATCH 의 차이점 (0) | 2022.07.26 |