2022/03 8

실용주의 프로그래머 Assignment #10 - 6장. 동시성

오늘 TIL 3줄 요약 동시성과 병렬성 공유 상태 없는 동시성을 위하여 액터를 사용하라. 칠판 시스템 TIL (Today I Learned) 날짜 2022.03.29 오늘 읽은 범위 6장. 동시성 책에서 기억하고 싶은 내용을 써보세요. 동시성(Concurrency): 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것 병렬성(Parallelism): 실제로 동시에 실행되는것 모든 일에는 동시성이 있다. 여러분의 애플리케이션이 실제 세상을 다루기 원한다면 동시성은 필수다. 세상은 비동기적이기 때문이다. 동시성이나 병렬성을 지원하는 코드를 쓰는 건 왜 어려울까? 한가지 이유는 우리가 프로그래밍을 순차적 시스템으로 배워서다. 순차적으로 사용할 땐 비교적 안전하지만, 동시에 두가지 일이 일어..

Choi solyi/책 2022.03.29

[책] 주니어개발자가 읽어 본 소프트웨어 아키텍처 101

회사 상사분과 대화를 나누며 책 이야기가 나왔을 때 개발자로서의 가이드라인을 제시해주신 적이 있다. 지금은 입사 초반이므로 객체지향 언어에 대한 대한 서적을 먼저 필독이라고 알려주셨고, 그다음으로는 알고리즘 혹은 디자인 패턴에 대해 공부하라고 알려주셨다. 그 뒤에 5년 정도의 경력이 쌓인 후 아키텍처에 대해서 공부해보면 좋을 거라고 하셨다. 개발 관련 문서나 블로그 등을 읽다 보면 아키텍처, 아키텍트라는 단어가 자주 보이곤 하지만 그 뜻을 정확하게 이해하고 있진 않았다. 그러다가 만나게 된 소프트웨어 아키텍처 101이라는 책. 아직 개발 실무 경험도 많지 않고 여러모로 공부하는 단계여서 아직 읽기는 이를 수도 있다고 생각했지만 모르는 분야이지만 언젠가 공부해야 한다면 미리 읽고 용어들에 익숙해져 두는 것..

실용주의 프로그래머 Assignment #08 - 5장. 구부러지거나 부러지거나

오늘 TIL 3줄 요약 결합도 줄이기 설정데이터 - 정적 설정, 서비스형 설정 이벤트 TIL (Today I Learned) 날짜 2022.03.26 오늘 읽은 범위 5장. 구부러지거나 부러지거나 책에서 기억하고 싶은 내용을 써보세요. 결합도 줄이기 가능한 한 느슨하고 유연한 코드를 작성해야한다. 그렇지 않으면 코드는 금세 낡고 수정하기 어려워지고, 결국 기억 저편으로 사라질 것이다. 유연함을 유지하는 한 가지 좋은 방법은 물론 가능한 한 코드를 적게 작성하는 것이다. 코드 수정은 새로운 버그가 생기는 계기이기도하다. 높은 결합도는 변경의 적이다. 결합도가 낮은 코드가 바꾸기 쉽다. 소프트웨어 구조는 유연해야한다. 다음과 같은 결합의 증상을 놓치지 않도록 주의해라 개발자가 수정하는 부분이 시스템에 어떤 ..

Choi solyi/책 2022.03.27

실용주의 프로그래머 Assignment #06 - 4장. 실용주의 편집증

오늘 TIL 3줄 요약 완벽한 소프트웨어를 만드는 것은 불가능하다. "그런 일은 절대 일어날리 없다"는 없다. 작은 단계를 밟아라. 언제나. TIL (Today I Learned) 날짜 2022년 3월 24일 오늘 읽은 범위 4장. 실용주의 편집증 책에서 기억하고 싶은 내용을 써보세요. 여러분은 완벽한 소프트웨어를 만들 수 없다. 삶의 공리로 인정하고 받아들여라. 그리고 축하하라. 완벽한 소프트웨어는 존재하지 않기 때문이다. 그리 길지 않은 컴퓨터 역사를 통틀어 어느 누구도 완벽한 소프트웨어를 만들지 못했다. (중략) 그래봐야 일관성을 확인하고 데이터베이스 칼럼에 제약을 거는 정도로 뿌듯해 하는 경우가 대부분이다. 모든 프로그래머가 자기 경력을 쌓는 초기부터 암기해야 하는 계명이 있는것 같다. 요구사항,..

Choi solyi/책 2022.03.24

실용주의 프로그래머 Assignment #05 - 3장. 기본도구

오늘 TIL 3줄 요약 도구 사용법에 익숙해져라 버전관리를 하라 일지를 써라 TIL (Today I Learned) 날짜 2022.03.23 오늘 읽은 범위 3장. 기본도구 책에서 기억하고 싶은 내용을 써보세요. 도구는 여러분의 재능을 증폭한다. 도구가 더 훌륭하고 여러분이 더 사용법에 능숙해질수록 여러분의 생산성은 더 높아질 것이다. 마우스나 트랙패드를 치워라 프로젝트 허브로서의 버전관리 디버깅은 단지 문제풀이일 뿐이라는 사실을 받아들이고, 그런 마음으로 공략하라. 비난 대신 문제를 해결하라 경계조건과 실제 최종사용자의 패턴 모두를 철저히 테스트 해야한다. 엔지니어링 일지 - 기억보다 더 믿을 만하다. 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 오늘은 다양한 도구에 대한 이야기였다. 이미 내..

Choi solyi/책 2022.03.24

실용주의 프로그래머 Assignment #03 - 2장.실용주의 접근법

오늘 TIL 3줄 요약 ETC 원칙 - 바꾸기 더 쉽게 다른 사람의 소스 코드와 문서 읽고 배우고, 기억하기 높은 응집도와 낮은 결합도 TIL (Today I Learned) 날짜 2022. 03. 20 오늘 읽은 범위 2장. 실용주의 접근법 책에서 기억하고 싶은 내용을 써보세요. ETC원칙 - 바꾸기 더 쉽게 왜 결합도를 줄이면 좋은가? 관심사를 분리함으로써 각각이 더 바꾸기 쉬워지기 때문이다. 왜 단일 책임 원칙이 유용한가? 요구사항이 바뀌더라도 모듈 하나만 바꿔서 반영 할 수 있기 때문이다. 왜 이름 짓기가 중요한가? 이름이 좋으면 코드가 읽기 쉬워지고, 코드를 바꾸려면 코드를 읽어야 하기 때문이다. ETC는 규칙이 아닌 가치이다. 파일을 저장할때, 테스트를 쓸때, 버그를 수정할 때도 '바꾸기 더 ..

Choi solyi/책 2022.03.21

실용주의 프로그래머 Assignment #02 - 1장.실용주의 철학

오늘 TIL 3줄 요약 깨진 창문은 바로 수리하자 현재 상황이 마음에 들지 않는다면, 나는 상황을 바꿀 수 있다. 성장하고자 하기 TIL (Today I Learned) 날짜 2022. 03. 19 오늘 읽은 범위 1장. 실용주의 철학 책에서 기억하고 싶은 내용을 써보세요. 많은 개발자들이 불만에 가득 차있다. 그 종류는 다양해서, 누군가는 자신의 성과를 몰라준다고, 월급이 너무 적다고, 팀 분위기가 좋지 않다고, 재택근무를 하고 싶어하기도 한다. 변화를 기피하는 개발자들이 많다. 스스로의 행동을 직접 결정 할 수 있는 힘이 있고, 내가 내 조직을 바꿀 수 있다.(이직을 하거나, 현재 조직을 변화 시킨다는 두가지 의미로) 팀 내의 신뢰가 절대적으로 필요하다. 나도 편하게 말할 수 있어야 하고, 다른 팀원..

Choi solyi/책 2022.03.20