티스토리

robinjoon의 개발이야기
검색하기

블로그 홈

robinjoon의 개발이야기

robinjoon98.tistory.com/m

흔한 휴학생이 개발 공부한거 정리하는 블로그.

구독자
2
방명록 방문하기
공지 블로그 주소 변경 모두보기

주요 글 목록

  • [스프링 입문을 위한 자바 객체 지향의 원리와 이해] 부록B 내용정리 2022.04.14 - [IT 책 독서록] - [스프링 입문을 위한 자바 객체지향의 원리와 이해] 7장 내용정리 [스프링 입문을 위한 자바 객체지향의 원리와 이해] 7장 내용정리 2022.04.08 - [IT 책 독서록] - [스프링 입문을 위한 자바 객체 지향의 원리와 이해] 6장 내용정리 [스프링 입문을 위한 자바 객체 지향의 원리와 이해] 6장 내용정리 6장은 스프링 프레임워크에서 사용 blog.robinjoon.space 이번 장은 자바 8에서 추가된 람다와 함수형 프로그래밍에 대해 간략히 소개한다. 정말 간략히만 소개해서 사실 본격적인 람다식과 스트림, 메서드 레퍼런스에 대해 공부하기 위해서는 별도의 책이 필요하다. 그저 이런게 있으니 한번 찾아봐라~ 정도로 소개한다. 이 포스팅에선 이런 점을 .. 공감수 0 댓글수 0 2022. 4. 19.
  • [스프링 입문을 위한 자바 객체지향의 원리와 이해] 7장 내용정리 2022.04.08 - [IT 책 독서록] - [스프링 입문을 위한 자바 객체 지향의 원리와 이해] 6장 내용정리 [스프링 입문을 위한 자바 객체 지향의 원리와 이해] 6장 내용정리 6장은 스프링 프레임워크에서 사용하고있는 디자인 패턴 8개를 다룬다. 디자인 패턴 자체가 이 책만으로 이해하기에는 이 책의 내용이 부족하기 때문에 별도의 책을 보는 것을 권장하고있다. 이 blog.robinjoon.space 7장은 스프링에 적용된 핵심 원리인 IOC/DI, AOP, PSA에 대해 다룬다. DI (의존성 주입) 객체지향 프로그래밍에서 의존성이란 한 객체가 다른 객체를 사용하는 것을 말한다. 예를 들어 다음 코드를 보자. public class Car{ Tire tire; public Car(){ this.ti.. 공감수 0 댓글수 0 2022. 4. 14.
  • [스프링 입문을 위한 자바 객체 지향의 원리와 이해] 6장 내용정리 6장은 스프링 프레임워크에서 사용하고있는 디자인 패턴 8개를 다룬다. 디자인 패턴 자체가 이 책만으로 이해하기에는 이 책의 내용이 부족하기 때문에 별도의 책을 보는 것을 권장하고있다. 이 책에서는 객체지향의 4대 원칙을 요리도구에, SOLID 원칙을 요리도구 사용법에, 디자인 패턴을 레시피에 비유하고있다. 디자인 패턴은 SOLID 원칙을 준수하며 여러 문제상황을 해결하기 위한 선배들의 탐구과정속에서 정리된 좋은 예시이다. 따라서 스프링에서도 디자인 패턴을 적극 활용하였고, 이번 장에서는 이 디자인 패턴들에 대해 알아보았다. Adapter Pattern (어댑터 패턴) 어뎁터는 직역하면 변환기로 번역된다. 변환기의 역할은 서로 다른 두 인터페이스 사이에 통신이 가능하게 하는 것이다. 이 패턴은 개발자가 외.. 공감수 0 댓글수 0 2022. 4. 8.
  • [스프링 입문을 위한 자바 객체지향의 원리와 이해] 5장 내용정리 SOLID 원칙 SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Principle): 개방 폐쇄 원칙 LSP(Liskov Substitution Principle): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 이 원칙들을 잘 지키면 좋은 객체지향 설계가 나온다. 이 원칙들은 모두 응집도를 높이고 결합도는 낮추려고 하는 노력으로부터 온 것이다. 응집도 : 하나의 모듈 내부에 존재하는 구성요소들의 기능적 관련성 결합도 : 모듈 간의 상호 의존 정도 SOLID는 개념이다. 제품이 아니다. 따라서 객체.. 공감수 0 댓글수 0 2022. 4. 1.
  • [스프링 입문을 위한 자바 객체지향의 원리와 이해] 4장 정리 2022.03.24 - [IT 책 독서록] - [스프링 입문을 위한 자바 객체지향의 원리와 이해] 3장 정리 [스프링 입문을 위한 자바 객체지향의 원리와 이해] 3장 정리 2022.03.14 - [IT 책 독서록] - [스프링 입문을 위한 자바 객체지향의 원리와 이해] 1 ~ 2장 정리 [스프링 입문을 위한 자바 객체지향의 원리와 이해] 1 ~ 2장 정리 1장 : 온고지신. 청출어람 1장에서 얘기 blog.robinjoon.space 4장은 이전 장에서 등장하지 않은 자바에서 사용하는 키워드와 개념에 대해 설명한다. 대부분의 키워드와 개념은 이미 자바 문법을 공부하면서 보았던 개념이기에 따로 정리하지 않고, 신선한 내용만 정리해 보았다. instanceof 연산자 이 연산자는 다음과같이 사용한다. 객체_.. 공감수 0 댓글수 0 2022. 3. 31.
  • [스프링 입문을 위한 자바 객체지향의 원리와 이해] 3장 정리 2022.03.14 - [IT 책 독서록] - [스프링 입문을 위한 자바 객체지향의 원리와 이해] 1 ~ 2장 정리 공감수 0 댓글수 0 2022. 3. 24.
  • [객체지향의 사실과 오해] 부록 A 내용정리 2021.07.20 - [IT 책 독서록] - [객체지향의 사실과 오해] 3장 내용정리 [객체지향의 사실과 오해] 3장 내용정리 2021.07.14 - [IT 책 독서록] - [객체지향의 사실과 오해] 2장 내용 정리 [객체지향의 사실과 오해] 2장 내용 정리 2021.07.13 - [IT 책 독서록] - [객체지향의 사실과 오해] 1장 내용 정리 [객체지향의 사실과 blog.robinjoon.space 부록에선, 3장에서 다룬 추상화에 대해 좀 더 깊게 다룬다. 따라서, 이전 발행글도 3장으로 했다. 추상화 기법 추상화 기법에는 3가지 종류가 있다. 분류와 인스턴스화 일반화와 특수화 집합과 분해 분류와 인스턴스화 객체를 분류하고 범주로 묶는 것은 객체들의 특정 집합에 공통의 개념을 적용하는 것을 의미한.. 공감수 0 댓글수 0 2022. 3. 18.
  • [객체지향의 사실과 오해] 7장 내용정리 2022.03.03 - [IT 책 독서록] - [객체지향의 사실과 오해] 6장 내용정리 [객체지향의 사실과 오해] 6장 내용정리 2022.03.01 - [IT 책 독서록] - [객체지향의 사실과 오해] 5장 내용정리 [객체지향의 사실과 오해] 5장 내용정리 2021.07.29 - [IT 책 독서록] - [객체지향의 사실과 오해] 4장 내용정리 [객체지향의 사실과 blog.robinjoon.space 7장에서는, 객체지향 설계의 3가지 관점에 대해 설명하고, 실제 코드를 작성하여 그 코드를 각 관점에서 바라본다. 객체지향의 3가지 관점 개념관점 설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현한다. 이 관점은 사용자가 도메인을 바라보는 관점을 반영한다. 따라서 실제 도메인의 규칙과 제약을 최대.. 공감수 0 댓글수 0 2022. 3. 18.
  • [스프링 입문을 위한 자바 객체지향의 원리와 이해] 1 ~ 2장 정리 1장 : 온고지신. 청출어람 1장에서 얘기하고자 하는 말은 다음 두 문장으로 정리된다. "스프링같은 신기술은 하늘에서 뚝 하고 떨어진 것이 아니라 이전 기술의 어깨를 디딤돌삼아 그 위에 이전 기술이 제시한 철학과 기법을 정제하고, 이전 기술을 거름삼아 새로운 철학과 기법을 더해 나타나는 것" "따라서, 스프링을 온전히 이해하기 위해서는 이전 기술들에 대한 이해가 필요하다." 2장 : 객체지향 속 구조적/절차적 프로그래밍 2장의 내용은 객체지향 프로그래밍 언어인 자바에서, 그 이전의 구조적/절차적 프로그래밍 언어에서 사용하던 기법들을 어떻게 사용하고 있는지 보여준다. 자바의 많은 예약어는 C언어에서 왔음을 보여주며 절차적/구조적 프로그래밍의 유선을 객체지향 프로그래밍 언어인 자바에서 사용하고 있음을 보여준.. 공감수 0 댓글수 0 2022. 3. 14.
  • [객체지향의 사실과 오해] 6장 내용정리 2022.03.01 - [IT 책 독서록] - [객체지향의 사실과 오해] 5장 내용정리 [객체지향의 사실과 오해] 5장 내용정리 2021.07.29 - [IT 책 독서록] - [객체지향의 사실과 오해] 4장 내용정리 [객체지향의 사실과 오해] 4장 내용정리 2021.07.20 - [IT 책 독서록] - [객체지향의 사실과 오해] 3장 내용정리 [객체지향의 사실과 blog.robinjoon.space 1 ~ 5장까지의 내용은 결국 책임 주도 설계에 대해 다뤘다고 해도 과언이 아닐만큼 모든 내용이 책임주도 설계로 이어졌다. 책에서 직접 언급했듯, 책임은 결국 소프트웨어의 기능이다. 따라서 1 ~ 5장까지는 기능을 바탕으로 어떻게 설계해야 하는지 이야기 했다. 각 기능을 더 작은 기능으로 구분하고 그것을 적절.. 공감수 0 댓글수 0 2022. 3. 3.
  • [객체지향의 사실과 오해] 5장 내용정리 2021.07.29 - [IT 책 독서록] - [객체지향의 사실과 오해] 4장 내용정리 [객체지향의 사실과 오해] 4장 내용정리 2021.07.20 - [IT 책 독서록] - [객체지향의 사실과 오해] 3장 내용정리 [객체지향의 사실과 오해] 3장 내용정리 2021.07.14 - [IT 책 독서록] - [객체지향의 사실과 오해] 2장 내용 정리 [객체지향의 사실과 blog.robinjoon.space 4장에서 개별 객체가 아니라 협력의 관점에서 바라보라고 한다. 5장에선 이 협력을 위해서 책임을 정의하는데, 이 과정에서 책임을 어떻게 정해야 하는지, 그 책임을 어떤 객체에게 어떻게 부여 할 것인지 등을 다룬다. 역할과 책임은 분명해야 한다. 책의 본문에선 1964년에 진행된 어떤 심리학 실험을 인용하며 .. 공감수 0 댓글수 0 2022. 3. 1.
  • [객체지향의 사실과 오해] 1 ~ 3장 통합 정리, 자바에선 어떻게 이걸 적용했나? 2021.07.13 - [IT 책 독서록] - [객체지향의 사실과 오해] 1장 내용 정리 [객체지향의 사실과 오해] 1장 내용 정리 객체지향 시스템은 자율적인 객체간의 협력으로 이루어진다. 협력을 구성하는 각 객체들은 각각의 역할이 있고 역할은 곧 책임을 의미한다. 실세계의 커피숍을 이와같은 관점으로보면 커피를 blog.robinjoon.space 2021.07.14 - [IT 책 독서록] - [객체지향의 사실과 오해] 2장 내용 정리 [객체지향의 사실과 오해] 2장 내용 정리 2021.07.13 - [IT 책 독서록] - [객체지향의 사실과 오해] 1장 내용 정리 [객체지향의 사실과 오해] 1장 내용 정리 객체지향 시스템은 자율적인 객체간의 협력으로 이루어진다. 협력을 구성하는 각 객 blog.robi.. 공감수 0 댓글수 0 2022. 2. 23.
  • [Clean Code] 3장 함수 (2) 서술적인 이름을 사용해라 함수는 어떤 동작을 하는 것이다. 따라서 함수의 이름은 동작을 서술해야 한다. 그것이 함수의 "좋은 이름"인 것이다. 좋은 이름의 가치는 2장에서 많이 얘기했다. 함수의 이름이 길어져도 상관없다. 이름을 직접 넣어보고 읽어본 후 결정해도 된다. 어차피 우리는 IDE를 사용하고 IDE는 자동완성을 지원하니까! 한 모듈(클래스) 내에선 이름에 사용된 단어들이 일관성 있어야 한다. 회원을 만드는 함수를 createMember() 라 했으면 게시글을 만드는 함수는 createPost() 여야 하지 makePost()이면 안되고, 회원탈퇴는 deleteMember()이여야 하지 deleteUser()이면 안된다. 함수 인수 public void function(){ } public voi.. 공감수 0 댓글수 0 2022. 2. 21.
  • [Clean Code] 3장 함수 (1) 3장에선 함수(메서드)에 대한 내용이다. 어떤 함수가 깔끔한 함수인지 설명한다. 1. 함수는 작아야한다. 함수의 소스코드 자체가 짧아야 한다. 이는 결국 복잡한 조건문과 반복문이 엉켜있어선 안된다는 소리다. 코드가 길면 보기 어려워진다. 정확히는 하나의 블록에 속하는 코드가 길면 길수록 보기는 어려워진다. 2. 함수는 하나의 일만 해야 한다. 함수가 여러가지 일을 해서는 안된다. 여러가지 일을 한다는 것은 여러 부수효과(side-effect)를 발생시키기 아주 쉽기 때문이다. 중요한 것은, "한가지 일" 인지 "여러가지 일" 인지 어떻게 구분하는가? 이다. 만일 게시판에 글을 작성하는 writePost 함수에서, 글을 작성하는 과정은 인증과, 실제 글쓰기 2가지로 나뉜다. 즉 사용자에게 쓰기권한이 있는지.. 공감수 0 댓글수 0 2022. 2. 18.
  • [객체지향의 사실과 오해] 4장 내용정리 2021.07.20 - [IT 책 독서록] - [객체지향의 사실과 오해] 3장 내용정리 [객체지향의 사실과 오해] 3장 내용정리 2021.07.14 - [IT 책 독서록] - [객체지향의 사실과 오해] 2장 내용 정리 [객체지향의 사실과 오해] 2장 내용 정리 2021.07.13 - [IT 책 독서록] - [객체지향의 사실과 오해] 1장 내용 정리 [객체지향의 사실과 blog.robinjoon.space 객체지향 설계의 전체적인 품질을 결정하는 것은 개별객체의 품질이 아니라 여러 객체들이 모여 이뤄내는 협력의 품질이다. 협력 각 객체간의 요청과 응답으로 이루어진 네트워크이다. 책임 어떤 객체가 어떤 요청에 대해 대답할 수 있거나, 적절한 행동을 할 의무가 있는 경우 해당 객체가 책임을 가진다고 말한다. .. 공감수 0 댓글수 0 2021. 7. 29.
  • [객체지향의 사실과 오해] 3장 내용정리 2021.07.14 - [IT 책 독서록] - [객체지향의 사실과 오해] 2장 내용 정리 [객체지향의 사실과 오해] 2장 내용 정리 2021.07.13 - [IT 책 독서록] - [객체지향의 사실과 오해] 1장 내용 정리 [객체지향의 사실과 오해] 1장 내용 정리 객체지향 시스템은 자율적인 객체간의 협력으로 이루어진다. 협력을 구성하는 각 객 blog.robinjoon.space 추상화 : 어떤 양상, 세부사항, 구조를 좀 더 명확하게 이해하기 위해 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 추상화에는 두가지 차원이 있다. 구체적인 사물들간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것. 중요한 부분을 강조하기위해 불필요한 세부사항을 제거함으로써 단순하게 .. 공감수 0 댓글수 0 2021. 7. 20.
  • [객체지향의 사실과 오해] 2장 내용 정리 2021.07.13 - [IT 책 독서록] - [객체지향의 사실과 오해] 1장 내용 정리 [객체지향의 사실과 오해] 1장 내용 정리 객체지향 시스템은 자율적인 객체간의 협력으로 이루어진다. 협력을 구성하는 각 객체들은 각각의 역할이 있고 역할은 곧 책임을 의미한다. 실세계의 커피숍을 이와같은 관점으로보면 커피를 blog.robinjoon.space 객체는 구별가능한 식별자, 특징적인 행동, 변경가능한 상태를 가진다. 상태 : 특정 시점에 객체가 가지고있는 정보의 집합. 객체의 구조적 특징을 표현한다. 객체의 상태는 정적인 프로퍼티와 동적인 프로퍼티 값으로 구성된다. 프로퍼티 : 객체의 상태를 구성하는 모든 특징. 단순한 값인 속성과 다른 객체를 참조하는 링크로 부분된다. ex) 사람의 키, 몸무게 프로퍼.. 공감수 0 댓글수 0 2021. 7. 14.
  • [객체지향의 사실과 오해] 1장 내용 정리 객체지향 시스템은 자율적인 객체간의 협력으로 이루어진다. 협력을 구성하는 각 객체들은 각각의 역할이 있고 역할은 곧 책임을 의미한다. 실세계의 커피숍을 이와같은 관점으로보면 커피를 주문하는 것은 손님의 역할이자 책임이다. 손님의 주문을 바리스타에게 전달하고, 바리스터로부터 전달받은 커피를 손님에게 주는것은 캐셔의 역할이자 책임이다. 캐셔로부터 전달받은 커피를 만드는것은 바리스타의 역할이자 책임이다. 자율적인 객체는 상태와 행동을 가지고, 협력에 참여하는 과정속에서 스스로 판단하고 결정한다. 이러한 자율성은 객체의 내부와 외부가 명확히 구분되어있는 것으로부터 나온다. 객체는 다른 객체가 무었을 하는지는 알 수 있지만, 어떻게 하는지는 알 수 없다. 객체는 다른 객체와 협력하기위해 메시지를 전송하고 또 수신.. 공감수 0 댓글수 0 2021. 7. 13.
  • [객체지향의 사실과 오해] 리뷰 이 책은 "객체지향이 무었인가?" 라는 질문을 쉬우면서도 진지하게 풀어가는 책이다. 객체지향 프로그래밍언어의 기본서에서 객체지향에 대해 설명하는 부분에서 보통 객체지향이란 현실세계의 추상화이다 라고 설명한다. 그러나, 이 책은 시작부터 이런 설명을 철학적인 이해에는 도움이되나 실용적인 측면에선 부족한 설명 이라고 말한다. 그 후 간단한 커피숍 예제를 통해 이 책의 전체를 관통하는 중요한 키워드 역할, 책임, 협력 을 소개한뒤 이 키워드들을 기반으로 설계할때 무엇이 중요한지 이야기했다. 이 책은 객체가 무었인지, 객체지향은 무었인지, 다형성이 무었인지, 객체지향 시스템의 설게는 어떻게 하는게 좋은지 등의 객체지향언어로 프로그램을 조금 작성해보았다면 가질 의문을 다룬다. 이제 막 객체지향 프로그래밍에 발을 .. 공감수 0 댓글수 0 2021. 7. 13.
  • [Clean Code] 2장 의미 있는 이름 - 내용정리 좋은 코드를 작성하는 내용을 담은 여러 책중 가장 유명한 책인 "클린 코드"를 읽고 내용을 정리해 보았다. 단순히 내용을 정리하는 것이므로, 이에대한 나의 생각은 다음 포스팅에서 다룬다 모든 소프트웨어에서 이름은 어디나 쓰인다. 변수에도,함수에도, 인수와 클래스,패키지등 모든 곳에 이름을 붙인다. 심지어 소스코드 파일에도 이름을 붙이고 실행파일에도 붙인다. 따라서, 이름을 잘 지으면 여러모로 편하다. 의도를 분명하게 밝혀라 변수나 함수 크리고 클래스 이름은 그것의 존재이유는? 수행기능은? 사용방법은? 이라는 질문들에 답해야하며, 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. int d; // 경과 시간(단위: 날짜) 위 코드에서 d 라는 이름은 아무 의미도 나타내지 않는다. 이런 이름 .. 공감수 0 댓글수 0 2021. 5. 5.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.