강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

무무님의 프로필 이미지
무무

작성한 질문수

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

객체 메모리 레이아웃과 해시코드

해시 알고리즘 관련으로 질문이 있습니다.

작성

·

8

0

안녕하세요.

현재 cs 강의부터 c/c++/시스템.네트워크,tcp/ip 등 백엔드에 도움되는 강의를 듣고 현재 자바강의를 듣고 있습니다.

 

자료구조와 알고리즘을 공부할 때 저의 공부방법이 왜 사용하는지, 어떨 때 사용할지, 어떻게 작성하는지, 이럴 때엔 어떻게 대응 할 지를 중심으로 공부를 하고 있습니다.

 

배열, 스택, 큐, 연결리스트는 코드를 보지 않고 작성할 수 있도록 미리 훈련을 해놓았었지만 최근에 트리 / 해시로 넘어가면서부터

'이걸 안 보고 쓸 정도로 외우려면 시간 소요가 심할 것 같은데?'

생각이 들었습니다. 이러한 고민을 하게 된 건 전에 경쟁력 있는 백엔드 개발자가 되려면 홈페이지 하나는 코드를 보지 않고 써야한다 라는 얘기를 들었기 때문입니다.

(다만 공부하고 있는 학생으로 홈페이지 만드는 코드가 무엇인지를 모르기에 이러한 고민을 하게 되는 것도 있습니다.)

 

13년 전에 C/C++ 개발 회사에서 일을 했을 때 코드를 외우는 게 아니라 어떠한 코드가 필요할 때 책을 펼쳐서 보고 직접 타이핑을 쳤었는데, 안 보고 쓸 정도로 외우기가 어려운 알고리즘들도 마찬가지 아닐까 하는 의구심이 들어 질문 드려봅니다. (현재는 바이브 코딩이겠지만요)

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 무무님.

해시 알고리즘을 비롯한 다양한 자료구조 및 알고리즘을 공부하시면서 코드를 외워야 하는지 고민하신 것 같습니다. 이런 고심은 많은 개발자가 공감할 수 있는 부분입니다.

해시 알고리즘과 코딩

해시 알고리즘은 데이터를 효율적으로 검색하고 삽입하기 위한 자료구조입니다. 해시 테이블, 트리 등과 같은 자료구조는 실제 실무에서 자주 사용되며, 이러한 자료구조의 구현방식보다는 사용 원리나 시간 복잡도 등을 이해하는 것이 더욱 중요합니다.

  • 외우기 vs 이해하기: 자료구조와 알고리즘을 외우기보다는 이해하는 것이 중요합니다. 언제 이러한 자료구조를 사용해야 하는지, 관련된 시간 복잡도, 장단점 등을 이해하는 것이 유능한 개발자로 성장하는 데 더 큰 도움이 됩니다.
  • 코드 구현: 모든 자료구조를 외우기보다는, 필요할 때 참조하여 사용할 수 있는 능력을 키우는 것이 중요합니다. 좋은 개발자는 문제를 이해하고 적합한 자료구조를 선택하여 효율적으로 문제를 해결할 수 있는 사람입니다.
  • 코딩 연습: 특정 자료구조와 알고리즘을 몇 번씩 구현해보는 것이 좋은 연습이 될 수 있습니다. 코드 자체를 외우기보다는, 작성하면서 이해를 통해 자연스럽게 숙달할 수 있습니다.

자료구조와 알고리즘을 다룸에 있어 모든 것을 외우려고 하기보다는, 필요할 때 이해하고 설계를 할 수 있는 능력을 키우는 것이 길게 봤을 때 훨씬 실질적인 실력 향상으로 이어질 수 있습니다.

추가적으로, 알고리즘 공부하는 방법과 관련된 Q&A를 통해 더 많은 인사이트를 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

무무님의 프로필 이미지
무무

작성한 질문수

질문하기