본문 바로가기
Today I Learned 2024. 3. 14.

(24.03.14) CS강의(자료 저장,표현,동작,활동) + Java의 정석 학습 + 사전미션

오늘은 내일 개인적인 일정이 생겨서 진짜 3시간 강의를 아침 일찍 부터 저녁까지 듣고, 정리하고 공부했다.,

그래도 CS강의에서 이론적인 것 보다는 진짜 내가 궁금했던 Java 관련 내용을 다뤄줬기 때문에 오히려 빡 집중하고, 나중에 어색하지만, 쓸 때 정확하게 코드를 쓸 수 있을 것 같다.

 

추가로 사전캠프의 미션이 진행되면서

  • Article Study
  • 용어 정리

학습이 이제 주어졌고, 하루만에 끝내는 것을 캠프가 원했지만.. 그렇게 된다면 진짜 몸이랑 멘탈이 박살이 날거 같아서 위의 두개는 매일매일 조금씩 개발 공개 Notion(블로그 프로필 밑에 걸려있음)에 계속 기록 하면서 DB화 할 계획이다.

 

그리고 무엇보다 급하게 이제 이사를 가게 될 집을 다음주에 찾아서 준비를 해야하기 때문에

사전캠프 기간이 많이 걸릴 것 같은 공부들과 해야할 일들을 좀 파악해서

다음 주 중으로 80~90퍼 완성을 해놔야 캠프 전에 이사 준비- 이사완료가 될 것 같다.

 


CS 강의 정리

CS관련 이론일줄만 알았는데 이번에는 Java에서 직접 사용할 수 있는 Collection Framework의 interface들과 그 클래스까지 배우게 되어서 Java 공부 노트에 그대로 쓸 수 있을 듯.

아무래도 한번 소개하는 느낌이라서 "자바의 정석" 책에선 해당 부분 Collection Framework의 내용을 참고해서 같이 읽고 공부하면서 개인 노션엔 정리를 할 수 있었다.

자바 가이드 북에서 배울 수 있는 기초의 한계로 Array 배열을 쓸 수 있지만, 연습문제를 List로 만들어서 조금이라도 메모리 할당량을 줄이고 또 코드도 쉽게 효율적으로 쓸수 있었는데 , 생각지도 못하게 CS강의에서 이를 정리할 수 있어서 정말 만족!

  • Collection Framework 에서 List interface는 특히 ArrayList와 LinkedList가 너무 똑같이 쓰여서 헷갈린 이론 부분역시 짚어서 Vector / List 구분
  • ArrayList가 왜 import java.util.List; 인터페이스를 임포트 할수 있는지에 대해서 Java의 기능(ArrayList를 리스트와 동일하게 작동하게 해줌)으로 이해할 수 있었음
  • 단, ArrayList 선언이 필요한  경우, import java.util.ArrayList; 무조건 임포트 해줘야.  List 인터페이스만 import 한다면인스턴스화 시킬 수는 있지만(구현할 수 있지만_, 가져오려면 ArrayList 패키지를 가져와야하기때문 
    • List<Integer> list = new ArrayList<>() 쓸수 있어서 원래는 둘이 똑같고, LinkedList는 또 다른 거로 알고 있었다..
더보기

자료의 저장과 표현

비트와 바이트

  • 이진수 체계
  • 비트로 데이터 표시
  • 바이트 byte

자료의 표현 방식

텍스트 자료

  • ASCII
  • 유니코드 와 UTF-8
  • ASCII vs 유니코드 vs UTF-8

숫자 자료

  • 보수표현

자료 구조의 동작과 활동

자료와 자료구조

  • 선형 자료구조
  • 비선형 자료구조

 

자료구조

  • Array (배열)
  • LinkedList (리스트)
  • ArrayList (벡터)
  • Queue, Stack + Deque(큐,스택+덱)
  • HashtabIe (맵)
  • Set (셋)

강의 내용이 좀 적어 보이지만, 진짜 "Java의 정석" 에 있는 개념과 실습 내용을 해당 강의가 거의 한 챕터를 다뤘기 때문에 밥먹으면서도 보고 살짝 쉬면서도 보느라 많이 좀 늦어진 듯 싶다..

 

오늘 해야하는 미션들도, 그리고 Article Study도 작성을 해야하니

한번에 많이 보다 할수 있을만큼 꾸준히 학습 하면서 생활 패턴을 맞춰야 겠다.