일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서평
- java
- 스터디
- jsp
- 성적프로그램
- 함수형 코딩
- 미니프로젝트
- Jackson
- Til
- If
- 주간회고
- 2020년 정보처리기사 4회
- 알고리즘
- 코드숨
- 책리뷰
- sqldeveloper
- hackerrank
- 2020년 일정
- Python
- git
- Real MySQL
- 정보처리기사
- rownum
- 2020년 제4회 정보처리기사 필기 문제 분석
- 회고
- post
- 필기
- algorithms
- LeetCode
- 뇌정리
- Today
- Total
목록책읽기 (23)
조컴퓨터
2023년 3월 13일에 시작해서 5월 1일에 마무리 함. 이 책에서 사용하는 코드는 자바 스크립트, 자바, C++ 로 이루어졌다. 코드 자체는 심플하여 이해하기 어렵지 않았다. 단권으로 이루어진 책이어서 내용 자체가 많이 간략화 되어 있다. 예를 들어, 싱글톤 패턴(singleton pattern) 을 설명하는데 `싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는 데 쓰이며, 보통 데이터베이스 연결 모듈에 많이 사용한다.` 정도로만 설명하고 예제 또한 짧다. 좀 더 디테일한 내용이나 예제 같은 것들은 검색을 통..
2022-11-21 ~ 12-19, 2023-01-02 ~ 03-06 총 3달에 걸친 리얼 마이에스큐엘 스터디가 끝났다. Real MySQL 을 크게 나누면 1권은 MySQL 의 아키텍처와 동작 방식에 대해 이야기를 하고 있고, 2권은 쿼리 최적화와 DB 운영의 안정성에 대해 이야기를 하고 있다. 가장 최근에 읽은 2권 후반부는 좀 다른 세상 이야기 같이 느껴지기도 했다. 파티션, 데이터 타입, 클러스터에 대한 이야기를 시작하기 시작할 때는 이런 방법도 있구나하며 읽어내려갔다. 생각에 남는 일화가 있다면 스터디원들과 진행한 도커에 MySQL 2개를 띄운 후 진행한 프라이머리-레플리카 구성이다. 해당 구성 후 애플리케이션에 read - write 구성까지 진행하려 했으나 이건 실패했다. 구성 자체에 의미가..
2022-11-21 ~ 12-19 딱 한 달이라는 기간을 정하고 공부하기 시작했다. MySQL 를 개발용으로 간단한 쿼리로만 대충 사용해보고, 튜닝이나 최적화를 생각해 본 경험이 전혀 없어서 이 책의 시선이나 시야가 신선하게 느껴졌다. 그리고 생각했던 것 보다 난이도가 있어서 좀 더 쉬운 책을 접하고 읽는 편이 효율이 좋을 것 같다. 개인적으로는 쿡북을 읽어 볼 예정이다. 솔직히 머리속에 남아있는 내용이 없다. 정말 어려웠다.
2022-09-03 ~ 11-05 (정확히는 오브젝트 스터디 회고를 진행하는 11-12 까지) 거의 두 달에 달하는 긴 스터디였다. 스터디 인원은 7명으로 시작했는데 시간이 지날수록 한 명씩 빠져나가 11월 5일 마지막 챕터는 나와 규원 님 둘이서 진행했다. 이 책은 객체지향 프로그래밍을 공부할 때 빼놓을 수 없는 책 중에 한 권이다. `객체란 무엇인가` 에 대한 의문을 가진 순간부터 지금까지 `객체` 에 대한 이야기를 꺼내면 항상 듣게 되는 이야기 중 하나가 조금 어렵겠지만 조영호 님의 오브젝트를 읽어보라는 이야기였다. 이 책은 OOP 의 전반적인 내용을 주입식의 서술이 아닌 이해할 수 있는 범주에서의 서술로 기술하고 있다. 물론 아직 이해가 안되는 부분도 있다. OOP 의 추상화, 캡슐, 상속, 다형..
`만들면서 배우는 클린아키텍처` 는 계층형 아키텍처의 문제에 대한 이야기로 시작해서 여러 가지의 트레이드 오프를 거친 후 최종적인 형태인 `헥사고날 아키텍처` 까지의 변환 과정을 적은 지면 안에 효과적으로 잘 집어넣은 책이다. 헥사고날 아키텍처에 대해 아직 이해가 되지 않는 부분이 있다. 예를 들면, 중간 과정이 너무나 많다는 것이다. 의존성을 줄이기 위해서 수많은 변환 과정을 거친다는 것이 이 책의 주요 골자인데, 의존성을 줄여야 하는 것은 맞지만 이렇게 많은 극단적인 계층적 분리가 필요한가 ? 이 점은 아직까지 의문으로 남아있다. 그러나 이 책을 읽으면서 좋았던 점은 헥사고날 아키텍처가 완연한 도메인 중심 디자인을 지향한다는 점이다. DDD 를 명확하게 이해하지 못한터라 도메인 중심이라는 키워드에 항..
챕터 9에서 중점적으로 볼 내용은 ? - 코드를 모듈화하기 위해 추상화 벽을 만들기 - 좋은 인터페이스가 어떤 것이고, 어떻게 찾는지 알아보기 - 왜 계층형 설계가 유지보수와 테스트, 재사용에 도움이 되는지 이해하기 계층형 설계 패턴 패턴 2 : 추상화 벽 추상화 벽(abstraction barrier) 이라 하는 두 번째 패턴은 여러 가지 문제를 해결한다. 그중 하나는 팀 간 책임을 명확히 나누는 것이다. 추상화 벽으로 구현을 감춘다 추상화 벽(abstraction barrier) 은 세부 구현을 감춘 함수로 이루어진 계층이다. 추상화 벽에 있는 함수를 사용할 때는 구현을 전혀 몰라도 함수를 쓸 수 있다. 점선 위에 있는 함수로 마케팅 팀은 독립적으로 일할 수 있습니다. 점선 위에 있는 함수는 장바구니..
챕터 8에서 중점적으로 볼 내용은 ? - 소프트웨어 설계에 대한 실용적인 정의 소개 - 계층형 설계를 이해하고 어떤 도움이 되는지 알아보기 - 깨끗한 코드를 만들기 위해 함수를 추출하는 방법 배우기 - 계층을 나누어 소프트웨어를 설계하면 왜 더 나은 생각을 할 수 있는지 알아보기 소프트웨어 설계란 무엇인가 ? 설계를 잘하면 소프트웨어 개발 과정 전체에 도움이 된다. 아이디어를 코드로 구현하고 테스트하고 유지보수하기 쉽다. 소프트웨어 설계(software design) 코드를 만들고, 테스트하고, 유지보수하기 쉬운 프로그래밍 방법을 선택하기 위해 미적 감각을 사용하는 것 소프트웨어 설계 중 계층형 설계(stratified design) 을 사용해 볼 것이다. 계층형 설계란 무엇인가 ? 계층형 설계는 소프트..
챕터 7에서 중점적으로 볼 내용은 ? - 레거시 코드나 신뢰할 수 없는 코드로부터 내 코드를 보호하기 위해 방어적 복사를 만들기 - 얕은 복사와 깊은 복사 비교 - 카피-온-라이트와 방어적 복사를 언제 사용하면 좋은지 레거시 코드와 불변성 MegaMart 는 블랙 프라이데이 세일을 준비하기로 한다. 이전부터 MegaMart 코드에 많은 기능이 추가되어 왔다. 지금은 잘 동작하고 있고 비즈니스를 위해 코드를 유지하는 것이 중요하다. 지금까지 장바구니에 관련된 코드는 모두 카피-온-라이트를 적용해 불변성을 유지했다. 하지만 블랙 프라이데이 행사 코드는 많은 곳에서 장바구니 데이터를 변경한다. 잘 동작하기는 하지만 오래전에 만든 코드라 당장 바꿀 시간이 없다. 그래서 레거시 코드에 쓸 수 있는 안전한 인터페이..