TIL 22.11.18 / 객체지향 프로그래밍 / CS특강 / 자바복습

쓰옹·2022년 11월 18일
0

개발자를 향해~~TIL✍

목록 보기
17/87

Today

오늘도 객체지향 프로그래밍 강의로 오전공부를 시작했따,!
그리고 드디어 타임어택 문제 푼 것 정리를 하고..자바로도 해야되는데 아직 자바 실력이..!
자바 문법 복습을 하고.
(객체지향까지 진도를 나갔어야했는데...실패)
저녁에 CS특강까지 들었다.

실강은 들어도 이해가 잘 되지 않는다..
강의자료로 쓰신 노션을 다시 한 번 글자 하나하나 곱씹어야겠다
큰 틀을 이해하는 데 일단 목표를...!!
더 좋은 소프트웨어를 만들기 위해!!

그래도 일단 이해한 데까지 정리를 해본다


객체지향 프로그래밍

객체 (Object)

: 다양한 속성들의 집합

  • 속성과 동작으로 구성

객체의인화

  • 현실에서는 객체가 수동적이지만, 소프트웨어에서는 능동적이다
    • 커피양은 스스로 줄지 않지만 소프트웨어에서는 스스로 줄어버린늑 ㅓㅅ..
  • 소프트웨어 세계에서는 객체가 더 많은 일들을 스스로 할 수 있어야 함@!!

상상한 것을 만들 수 있는데
현실세계와 간극이 있을 수 있다..

객체지향 설계의 핵심

객체들에게 역할과 책임이 주어지고
서로 메세지를 전달하며
협력하여 목표를 달성해나가는 것@!

객체지향

  • 객체를 지향하는 것. not 클래스
  • 클래스는 객체들의 협력 관계를 코드로 옮기는 도구일 뿐
  • 객체의 역할, 책임, 협력에 집중 해야함 (== 행위에 집중!)

이모저모

  • 객체한테도 책임과 역할이 과하게 부여하게 되면 객체가 과중되어
    클래스가 빵 터져버리는 수가 있다..
    그러면 유지보수도 힘들어짐

  • 객체는 세분화 하면 좋음

  • 역할과 책임이 명확해지니까..

  • 세분화를 위해서는 네이밍이 중요하다! 영단어 공부해야겠따..

  • 생성자는 초기화에 final을 붙여서 상수로 만들어 주는게 좋음

    • 최초에는 변경이 적은게 좋기 때문에..
    • 일단 묶어두고 나중에 필요할 때 풀어주는게 좋음
  • 코드 짤 때 set은 사용하지 않는게 좋음

    만드는 사람이 어떻게 만드느냐에 따라서 달라지기 때문에 그림을 잘 그려야된닷




CS특강_ 프로세스, 스레드, 비동기

운영체제( OS)에 여러개의 프로세스가 있고
각 프로세스는 1개 이상의 스레드를 갖는다

프로세스

  • 운영체제에서 독립된 메모리를 할당받은 작업의 단위. 프로그램의 인스턴스이다.
  • 프로세스가 메모리를 관리하기 위한 공간을 주소공간이라고 한다
  • 주소 공간은 Code, Data, Stack, Heap으로 구성
  • 각 프로세스는 최소 1개의 스레드를 갖는다

스레드

  • Stack 영역을 할당받음
  • 다른 스레드와 해당 프로세스 내의 Code, Data, Heap 영역을 공유

멀티프로세스

: 하나의 프로그램을 여러 개의 프로세스로 구성해 각 프로세스가 하나의 작업을 처리하도록 하는 것

  • 단점
    • 문맥교환(Context Switching )과정에서 무거운 작업이 진행되고 많은 시간이 소모될 수 있음.
    • 문맥교환: 하나를 하다가 다른 일을 하라고 하면 전환하는 과정에서 비용 발생

멀티스레드

: 하나의 프로그램을 여러 개의 스래드로 구성해 각 스래드가 하나의 작업을 처리하도록 하는 것

  • 프로세스에 비해 메모리 공간과 시스템 자원 소모가 줄어들게 된다
  • 요청이 몰렸을 때 값이 원하던게 안나올 수 있음 그렇게 됨,,

블로킹 vs 논블로킹

  • 블로킹
    • 제어권을 넘겨줌. 다른 함수를 호출하면 그 함수의 작업이 완료되야 원래 함수도 진행됨
  • 논블로킹
    • 제어권을 넘겨주지 않지. 호출하고 그 함수 작업여부와는 관계 없이 원래 함수 진행

동기 vs 비동기

  • 동기
    • 신경써. 함수 A와 함수 B를 호출할 때, 함수 A가 함수 B의 리턴값을 계속 확인
  • 비동기
    • 신경안써. 함수 A와 함수 B를 호출할 때, 함수 A가 함수 B의 작업 완료 여부는 신경 쓰지 않는 것



이 내용도 전부 이해는 못했지만, 큰 그림을 보자.. 들어본거에 일단 만족..




마무리

어제 해야할 것
✔ 알고리즘 타임어택 정리
✔ 자료형변수와 참조형 변수 차이 알아보기

모두 완료~!

주말엔 자바 객체지향에 대해 공부하고 이해를 해보자
예외처리까지 할 수 있으면 참 좋을텐데..
슬랙에 튜터님이 남겨주신 자바 숙제도 풀 수 있으면..!!!

주말에 할 게 많구나~~!

오히려 좋아╰(°▽°)╯

profile
기록하자기록해!

0개의 댓글