본문 바로가기

Study100

[오브젝트] 5장. 책임 할당하기 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 05. 책임 할당하기 2장에서는 책임을 중심으로 설계된 객체지향 코드의 대략적인 모양을 살펴봄. 5장에서는 2장에서 소개한 코드의 설계 과정을 따라가 보면서 객체에 책임을 할당하는 기본적인 원리를 살펴보는 챕터. 01 책임 주도 설계를 향해 ⚈ 데이터 중심의 설계에서 책임 중심의 설계로 전환하기 위한 원칙 데이터보다 행동을 먼저 결정하라 협력이라는 문맥 안에서 책임을 결정하라 [ 데이터보다 행동을 먼저 결정하라 ].. 2022. 12. 2.
[오브젝트] 4장. 설계 품질과 트레이드오프 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 04. 설계 품질과 트레이드오프 - 코드 (github) ⚈ ☆ (2장 관련한 내용) 예를들어 책에서 설명된 영화 할인 정책에서, 현재는 정책이 금액 정책 하나지만 차후 정책이 추가될게 분명해서 미리 추상화 해둔다면 이건 다형성일까? -> 다형성이 맞긴 하지만, 의미 없는 다형성 (YAGNI) ⚈ 객체지향 설계의 핵심은 책임 책임이 객체지향 애플리케이션 전체의 품질을 결정 객체지향 설계란 올바른 객체에게 올바른 책.. 2022. 12. 2.
[roadmap.sh] Backend 2주차 정리 스터디 메인 페이지 목차 완벽한 정리가 목적이 아니고, 로드맵을 보면서 기본 개념을 알고 차후 파고들어서 공부하기 위한 사전 준비 과정인 스터디이다. 따라서 이하 정리한 내용이 부실할 수 있습니다(애초에 제대로 보려면 한 주제당 블로그 글 하나 이상씩 나와야 하는 수준..) Learn a Language 프론트엔드는 HTML, CSS, JS 를 기반으로 +@로 파생되는 다른 애들이 있음. 백엔드는 그런건 잘 없는것 같음. 언어 및 프레임워크에 더해서 DB, 서버, 보안 등도 다뤄야 해서 러닝커브가 큰 것 같음. Java 자바스크립트 - 스크립트 JVM 위에서 돌아감 JVM, JRE, JDK 빌드툴 : Gradle, Maven 웹용 프레임워크 : 스프링, 스프링부트, 플레이 등 - 하지만 스프링쪽이 너무 .. 2022. 11. 26.
[오브젝트] 3장. 역할, 책임, 협력 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 03. 역할, 책임, 협력 [ 객체지향 패러다임의 관점에서 핵심 ] ⚈ 클래스, 상속, 지연 바인딩이 중요하지 않은 것은 아니지만, 구현 측면에 치우쳐 있으므로 객체지향 패러다임의 본질과는 거리가 멀다. 클래스와 상속은 객체들의 책임과 협력이 어느 정도 자리를 잡은 후에 사용할 수 있는 구현 메커니즘일 뿐이다. ⚈ 객체지향 패러다임의 핵심은 역할(role), 책임(responsibility), 협력(collabor.. 2022. 11. 24.
[오브젝트] 2장. 객체지향 프로그래밍 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. CHAPTER 02. 객체지향 프로그래밍 01 영화 예매 시스템 - 코드 (github) 02 객체지향 프로그래밍을 향해 - 협력, 객체, 클래스 대부분의 사람들은 클래스(class)를 경험한 후에 클래스에 어떤 속성과 메서드가 필요한지 고민한다. 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞춰야 얻을 수 있다. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다. 협.. 2022. 11. 23.
[CS 전공지식 노트] 2장. 네트워크 스터디 메인 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. [ 2장 - 네트워크 ] - 68page : 네트워크 얘기이니, 전반적으로 네트워크에 관한 얘기 TCP/IP 컴퓨터간의 통신을 위한 통신규약 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한 것이 그 시초 HW, OS, 접속매체에 관계없이 동작할수 있다는 개방성때문에 인터넷 통신을 위한 핵심으로 선택됨. TCP 클라이언트와 서버간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜. 3way handshake 같이 IP 네트워크 상에서 컴퓨터의 고유한 주소. 인터넷에 접속할 때 컴퓨터 각각에 부여받음... 2022. 11. 21.
[roadmap.sh] Backend 1주차 정리 스터디 메인 페이지 목차 완벽한 정리가 목적이 아니고, 로드맵을 보면서 기본 개념을 알고 차후 파고들어서 공부하기 위한 사전 준비 과정인 스터디이다. 따라서 이하 정리한 내용이 부실할 수 있다. Internet How does the internet work? The Internet is a global network of computers connected to each other which communicate through a standardized set of protocols. TCP/IP 컴퓨터간의 통신을 위한 통신규약 미국방위통신청에서 컴퓨터간의 통신을 위해서 TCP/IP를 사용하도록 한 것이 그 시초 HW, OS, 접속매체에 관계없이 동작할수 있다는 개방성때문에 인터넷 통신을 위한 핵심으로.. 2022. 11. 19.
[오브젝트] 1장. 객체, 설계 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기로 책에 나오지 않는 내용입니다. - 모든 이미지의 출처는 오브젝트(조용호 저) 책 입니다. 들어가며 - 프로그래밍 패러다임 01 패러다임의 시대 - 현대인들에게 패러다임 → 한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식 등의 체계 (e.g. 천동설 → 지동설 로의 패러다임의 전환) - 이 책에서 얘기하는 패러다임 전환 - 절차형 패러다임에서 절차형 패러다임으로의 변화 02 프로그래밍 패러다임 - ☆P.S 좋아하는 알고리즘 중 하나인 플로이드 와샬 알고리즘의 그 플로이드 와샬이 프로그래밍 패러다임 용어 처음 사용해서 신기했음! - 프로그래밍 패러다임 - 특정 시대의 어느 성숙한 개발자 공동체에 의해 수용된 프로그래밍 방법과.. 2022. 11. 16.
[CS 전공지식 노트] 1장. 디자인패턴과 프로그래밍 패러다임 스터디 메인 페이지 이 스터디의 경우 이미 책의 내용이 매우 축약된 내용이므로 책 내용 정리는 크게 의미가 없다고 생각합니다. 따라서 스터디 정리는 추가로 설명한 부분에 대해 작성했습니다. - 16 page (디자인 패턴 설명 시작하는 부분) 디자인패턴, 패러다임 모두 일종의 도구로 여러 사람의 공통된 문제 해결 방법을 정형화해둔 것. 정답이 없고 적절히 선택해 사용하면 된다. - 17 page (싱글톤 패턴 설명 시작하는 부분) "하나의 클래스에 오직 하나의 인스턴스만"이 애매할 수 있는데, 싱글톤 패턴을 적용한 자바 Class에 대해 new를 통한 인스터스화(=객체)가 프로그램 내에서 단 한 번만 일어난다고 이해하면 된다. - 20 page (싱글톤 패턴을 구현한 자바 코드) 자바 싱글톤 패턴의 변화.. 2022. 11. 15.
[종만북] FESTIVAL - 록 페스티벌 (자바 java) 문제 : FESTIVAL N이 최대 1000 이므로 O(N^2)의 알고리즘이라도 충분히 통과할 수 있다. 따라서 단순히 차이가 L 이상인 모든 구간에 대해 O(N^2)으로 확인해주면 된다. (코드의 24~25 line 참고) 주의점은 10^(-7) 이하의 절대/상대 오차가 있어야 하므로, 그냥 바로 출력하면 안되고 소수점 8자리 이상을 출력하도록 해야 한다. 자바의 경우 String.format("%.8f", answer)과 같은 코드로(c언어와 비슷한 출력 방식) 소수점 8자리까지 출력할 수 있다. 그리고 모든 구간에 대해 직접 더해봐도 시간 제한에 충분히 맞출 수 있긴 하지만(O(N)), prefix sum을 미리 구해둘 경우 [a, b] 구간의 합은 arr[b]-arr[a-1] 과 같이 O(1)로 .. 2022. 4. 5.