일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 모두를 위한 딥러닝
- 딥러닝
- HTTP
- 정리
- 머신러닝
- 리액트 네이티브
- 데이터베이스
- 백준 4949번
- 깃허브 로그인
- 지네릭스
- 깃 터미널 연동
- 팀플회고
- 모두를위한딥러닝
- 모두의 네트워크
- 모두의네트워크
- 백준 4358 자바
- 문자열
- 깃허브 토큰 인증
- 스터디
- 네트워크
- 리액트 네이티브 시작하기
- 리액트 네이티브 프로젝트 생성
- 데베
- React Native
- 자바
- 백준 4358번
- 백준 5525번
- 백준
- 깃 연동
- SQL
- Today
- Total
목록책을 읽자 (28)
솜이의 데브로그
책 : 오브젝트 오브젝트 - YES24 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 영화 예매 시스템 설계 온라인 영화 예매 시스템을 설계해보자. 요구사항 '영화'와 '상영'의 용어 구분 영화 - 영화에 대한 기본 정보 (제목, 상영시간, 가격 정보 등) 상영 - 실제로 관객들이 영화를 관람하는 사건 (상영 일자, 시간, 순번 등) 사용자가 실제로 예매하는(돈을 지불해 관람할 수 있는 권리를 구매하는) 대상은 영화가 아닌 상영이다. 하나의 영화는 하루 중 다양한 시간대에 걸쳐 한 번 이상 상영될 수 있다. 특정한 조건을 만족하는 예매자는 요금을 할..
책 : 오브젝트 서론 티켓 판매 시스템이라는 간단한 도메인을 예로 들어 전체적인 주제를 함축 및 전달 기본적으로 패러다임에 대해서 설명하고 있고 이 중 프로그래밍 패러다임의 경우 기존의 것을 새로쓰는 것이 아니라 별개의 패러다임으로 존재한다. 과거의 패러다임의 단점을 보완하는 발전적인 과정이라고 보인다. → 프로그래밍 패러다임은 새로운 것으로 바꾸는 혁명적이라기 보다 발전적이라고 볼 수 있다. 객체지향 패러다임과, 절차지향 패러다임의 경우를 나눈다기 같이 배우면 좋은 영역이라 보면 좋을 거 같다. 이론이 먼저일까?, 실무가 먼저일까? 로버트 L 글래스는 학습에 있어서 대부분 이론을 먼저 배우고 정립한 후 실무로 넘어가는 것이 더 발전할 것이라는 견해와는 다르게 실무가 선행 되고 이론을 정립하는 것이 더 ..
Reference : 만들면서 배우는 클린 아키텍처 계층으로 구성하기 buckapl |--- domain | |----- Account | |----- Activity | |----- AccountRepository | |----- AccountService |--- persistence | |----- AccountRepositoryImpl |--- web | |----- AccountController 웹 계층, 도메인 계층, 영속성 계층 각각에 대해 전용 패키지인 web, domain, persistence를 뒀다. 의존성 역전 원칙을 적용해 의존성이 domain 패키지에 있는 도메인 코드만을 향하도록 한다. domain 패키지에 AccountRepository 인터페이스를 추가 persistenc..
출처 : Java의 정석 1. 람다식 (Lambda expression) 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식이란? 메서드를 하나의 '식(expression)'으로 표현한 것이다. 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수'라고도 한다. 메서드의 매개변수로 전달되어지는 것이 가능하고, 메서드의 결과로 반환될 수도 있다. ex) int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5) + 1); 함수형 인터페이스 (Functional Interface) 람다식을 다루기 위한 인터페이스 단, 함수형 인터페이스에는 오직 하나의 추상 메서드만 정의되어 있어야 한다. 그래야 람다식..
Reference : 만들면서 배우는 클린 아키텍처 단일 책임 원칙 컴포넌트를 변경하는 이유는 오직 하나 뿐이어야 한다. 컴포넌트를 변경할 이유가 오로지 한 가지라면 컴포넌트는 딱 한 가지 일만 하게 된다. 아키텍처에서는, 컴포넌트를 변경할 이유가 한 가지라면 우리가 어떤 다른 이유로 소프트웨어를 변경하더라도 이 컴포넌트에 대해서는 전혀 신경 쓸 필요가 없다. 변경할 이유라는 것은 컴포넌트 간의 의존성을 통해 쉽게 전파된다. 많은 코드는 단일 책임 원칙을 위반하기 때문에 시간이 갈수록 변경하기가 더 어려워지고, 그로 인해 변경 비용도 증가한다. 의존성 역전 원칙 계층형 아키텍처에서 계층 간 의존성은 항상 다음 계층인 아래 방향을 가리킨다. 따라서 단일 책임 원칙을 고수준에서 적용할 때 상위 계층들이 하위..
Reference : 만들면서 배우는 클린 아키텍처 계층형 아키텍처는 데이터베이스 주도 설계를 유도한다 위와 같은 계층형 아키텍처에서 웹 계층 → 도메인계층 → 영속성 계층 에 의존하기 때문에 결국 데이터베이스에 의존하게 된다. 따라 모든 것이 영속성 계층을 토대로 만들어진다. 전통적인 계층형 아키텍처에서는 의존성의 방향에 따라 자연스럽게 데이터베이스의 구조를 먼저 생각하고, 이를 토대로 도메인 로직을 구현한다. 하지만 비즈니스 관점에서는 무엇보다도 도메인 로직을 먼저 만들어야 한다. ⇒ 도메인 로직이 맞다는 것을 확인한 후, 이를 기반으로 영속성 계층과 웹 계층을 만들어야 한다. ORM 사용 시, ORM에 의해 관리되는 엔티티들은 일반적으로 영속성 계층에 둔다. 도메인 계층에서는 이러한 엔티티에 접근,..
Reference : 클린코드 http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788966260959 Clean Code(클린 코드) - 교보문고 애자일 소프트웨어 장인 정신 | 나쁜 코드도 돌아는 간다. 하지만 코드가 깨끗하지 못하면 개발 조직은 기어간다. 매년 지저분한 코드로 수많은 시간과 상당한 자원이 낭비된다. 그래야 할 이유 www.kyobobook.co.kr 11장 ) 시스템 깨끗한 코드를 구현하면 낮은 추상화 수준에서 관심사를 분리하기 쉬워진다. 높은 추상화 수준, 즉 시스템 수준에서도 깨끗함을 유지하는 방법을 알아보자. 시스템 제작과 시스템 사용을 분리하라 소프트웨어 시스템은 애플리케이션 객..
Reference : Clean Code http://www.yes24.com/Product/Goods/11681152 Clean Code 클린 코드 - YES24 애자일 소프트웨어의 혁명적인 패러다임을 제시하는 책이다. 저자 로버트 마틴은 오브젝트 멘토(Object Mentor)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 정제 www.yes24.com 7장 ) 오류 처리 깨끗한 코드와 오류 처리는 연관성이 있다. 오류 코드보다 예외를 사용하라 Try-Catch-Finally 문부터 작성하라 try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. try 블록에서 무슨 일이 생기든지 호출자가 기대..