코딩조각

왜 알고리즘과 데이터구조를 배워야할까?

밍튜 2022. 7. 29. 18:41
개발자라면 '무조건' 알고리즘 공부를 해야할까?

 

큰 회사에 들어가기 위해서는 어려운 면접질문 & 코딩테스트가 필요하니까 공부가 필요하다...

 

하지만 그게 아니라면 ??

알고리즘이랑 데이터구조에 대해 자세히는 몰라도 뭘 만들수는 있다

 

어떻게든 돌아가는 코드를 만들었지만

코딩해서 배포까지해서 돌아가는거까지 확인했는데 겁나 느려....

아이거 내가 알아볼수는 있는데 협업할때 너무 불편해.. 관리하기도 어렵네..

 

어떡하지???

 

때문에 우리는 궁극적으로 코드를 더 멋지게! ------>> 코드 최적화 / 클린코드를 만들어야한다.

코드 최적화 / 클린코드는 바로 자료구조와 알고리즘을 알아야 적용이 가능하다!

 

자료구조와 알고리즘을  제대로 이해해야 실전 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