[워밍업 클럽_CS 전공 스터디 2기] 1주차 발자국
자료구조
일주일 동안 자료구조에서는 연결리스트, 배열, 스택, 큐, 덱, 해쉬 테이블, 셋에 대하여 학습하였습니다. 일반 연결리스트를 학습할 때는 해당 데이터의 장점에 관해 파악하기가 쉽지 않았습니다. 대부분의 기능을 배열로 쉽게 활용가능하고 배열에 비해 참조와 수정 삭제의 시간 복잡도에서도 큰 장점을 느끼지 못했습니다.
하지만 연결리스트 이후에 이중연결리스트를 구현하면서 연결리스트의 장점을 느낄 수 있었습니다. 해당 자료구조를 통해 queue 자료 구조와 deck 자료 구조에서 삽입, 삭제가 모두 O(1)의 성능으로 처리 되는 것을 배우면서 연결리스트의 장점을 느낄 수 있었습니다.
강사님이 작성해주신 기초 자료구조를 바탕으로 저만의 방식으로 수정하면서 많이 배울 수 있었습니다. 특히 혼자서 작성한후 이를 테스트 할때,
console
을 활용하는 방식이 불편해 자바스크립트의 테스트 코드를 도입하여 각 자료구조 코드가 수정되어도 테스트 코드를 통해 쉽게 틀린 부분을 찾을 수 있게 보안한 점이 좋았습니다.
해당 테스트 코드를 통해 해쉬테이블에서 key가 중복인 경우 새로운 데이터를 덮어씌우게 수정하거나, set의 경우 숫자 데이터 이외의 문자열, 배열등의 데이터를 저장할 수 있도록 확장한 점이 좋았습니다.
개념 강의를 수강한 이후 구현 강의를 수강하기 전에 필요한 메서드를 결정하고 혼자 생각하면서 자료구조를 작성하는 시간을 가진점이 좋았지만, 시간에 쫓겨 혼자 힘으로 완성하지 못하고 강의를 참고해서 완성한 부분이 아쉬웠습니다. (연결 리스트, 이중 연결 리스트, 해쉬테이블) 다음 주차에는 시간이 오래 걸려도 스스로 자료구조 알고리즘을 완성할 시간을 가져보려 합니다.
운영체제
운영 체제의 핵심적인 부분을 그림과 쉬운 설명으로 이해하여 핵심적인 개념을 빠르게 익히고 학습하기 좋았습니다.
짧은 시간에 운영체제 개요, 프로세스와 쓰레드, CPU 스케줄링의 핵심을 짚고 넘어갈 수 있었습니다.
해당 강의에서는 정말 핵심을 쉽고 간결하게 짚어주시기 때문에, 해당 강의를 바탕으로 학습 지식을 확장하는 시간이 필요하다고 여겨집니다. 이해하지 못한 부분 혹은 상세한 동작 방식을 알고 싶은 부분에 대해서 보다 더 파고들어가 정리를 하고자 합니다.
댓글을 작성해보세요.