Writing

작업 노트

기술 자체보다 어떤 문제를 왜 그렇게 풀었는지에 초점을 둡니다.

POP_part9(아키텍처 기본 기법)

사상 프로그래밍 이데올로기 아키텍처 기본 기법 충족성 완전성 프리미티브성 충족성 추상이 그것을 전하기 충분한지(remove가 있는데 add가 없으면 불충분) 완전성 추상이 모든 특성을 가지고 있는지(콜렉션인데 size 구하는게 없으면 안됨) 프리미티브성 추상이 순수한지 아닌지(add가 있는데 add10은 필요 없다.) 정

2 min read

POP_part7(아키텍처 기본 기법)

사상 프로그래밍 이데올로기 아키텍처 기본 기법 패키지화 모듈을 의미있는 단위로 모운후 그룹핑 한다. 소프트웨어 전체가 패키지라는 작은 단위로 분활되므로 복잡도가 낮아진다 패키지 않에 관련 없는 모듈이 섞이지 않으므로 모듈을 관리하기 쉽다. 수정에 대한 영향도가 패키지 안에 머무를 가능성이 높으므로 코드를 변경하기 쉬워진다

2 min read

POP_part6(아키텍처 기본 기법)

사상 프로그래밍 이데올로기 아키텍처 기본 기법 좋은 코드의 기초원리 추상 캠슐화 정보 은닉 패키지화 관심의 분리 충족성, 완정성, 프리미티브성(원시성, 순수성) 정책과 구현의 분리 인터페이스와 구현의 분리 참조의 단일성 분활정복 좋은코드에는 패턴이 있다. 추상 추상이란 개념적으로 명확한 선 긋기를 수행하는 것이다. 추상은

4 min read

POP_part5(프로그래밍 이론)

사상 프로그래밍 이데올로기 프로그래밍 이론 프로그래밍을 이끄는 가치관 1. 의사소통 2. 단순함 3. 유연성 가치관을 기술의 선택 기준으로 '어쨰서 이런 것을 할 필요가 있는가?', '이것은 어떤 가치가 있는가?', '언제 이것을 사용하면 좋은가?' 가치관은 원칙을 통해 코드에 적용 1. 결과의 국소화 2. 반복의 최소화

5 min read

codespitz73_part1

코드스피츠73 part1 코드짤때 LINT TIME(IDE에서 에러를 보여줌) 컴파일 할때 COMPILE TIME(컴파일 시에 에러를 보여줌) 런타임 RUN TIME(실행중일때 에러) 현대 패러다임 런타임 스크립트(자바 스크립트..) 복잡성을 정복하는것은 격리 lexical grammar control character

3 min read

POP_part4(OCP(Open-Closed Principle)/Naming is important)

원칙 프로그래밍 가이드 라인 OCP(Open Closed Principle) 코드는 확장에 열려 있고 수정에 대해서는 닫혀있는 2가지 속성을 동시에 충족하도록 설계한다. 확장에 대해서 열려있다는 말은 코드의 동작을 확장할 수있다는 의미이다. 수정에 대해서 닫혀 있다는 말은 코드의 동작을 확장하더라도 그 밖의 코드는 전혀

5 min read

POP_part3(SLAP(Single Layer of Abstraction Principle))

원칙 프로그래밍 가이드 라인 SLAP(Single Layer of Abstraction Principle) 추상화 수준의 통일 코드수준을 맞춘다. 코드에서 추상화 수준을 분리할 때는 상하 2계층이 아니라 기능 복잡도에 따라서 여러계층으로 분리된다. 각각의 계층에서 자신의 계슻에 속하는 요소에 대해 추상화 수준을 일치시킨다

6 min read

POP_part2(PIE(Program Intently and Expressively))

원칙 프로그래밍 가이드 라인 PIE(Program Intently and Expressively) 의도를 표현해서 프로그래밍 해라. 코드는 컴파일러가 아닌 사람이 읽기 위한것이다. 그래서 어떻게 하면 다른사람이 잘 이해하게 직관적으로 코딩하자. 코드는 소프트웨어 동작을 정확하고 완벽하게 알기 위한 유일한 실마리다. 소프트

4 min read

circuit-breaker

circuit breaker 소프트웨어에 대한 복잡도가 높아지면서 서비스에서 다른서비스를 호출하는 형태(예를들면 MSA 형태로 구성되어 API들을 호출하는 형태)들이 보편화 되어 서비스 되고 있다. 응용프로그램을 만들때 환경에서 발생할 수 있는 일시적 장애에 민감해야 된다. 장애에는 구성 요소 및 서비스에 대한 네트워크

7 min read

POP_part1(전제 프로그래밍 불변사실)

the principles of programming 전제 프로그래밍 불변사실 프로그래밍에서는 은총알은 없다. 왜? 본질적으로 소프트웨어는 난해하다. 1. 복잡성 규모가 크면 수천 수만라인의 코드도 존재 하고 각 컨퍼넌트간에 종속성도 비선형적으로 증가함 2. 동조성(호환성) 실세계랑 끊임없이 동조 해야 된다. (네트워크,

10 min read