목록개발일기 (7)
포도가게의 개발일지
개방폐쇄 원칙 - 어떻게 왜 언제 발생하는지에 따라서 기능을 분리하고 저수준 컴포넌트에서 발생한 변경으로부터 고수준 컴포넌트를 보호할수있다. 음.. 오랜만에 생각해보니까코드를 변경으로부터 보호하고 추가로확장한다도 있지만 책임역할의 구체적 변경이 협력에 영향을 주지않는다고 생각되는것을 까먹고있었네 그럼 최고 보호되어야하는얘는 협력 음 맞는듯.. 극은 진행되어야한다! 리스코프예전에는 import 의존성까지는 고려하지않았는데 이제 서브타입을 import하는것도 의존성이 생겼다는것을 알았다. lsp는 아키텍처수준까지 확장할수있고 반드시 확장해야한다. 후후 worker에 이미 적용했습니다. 인터페이스분리법칙오 오히려 동적타입언어가 결합도를 낮춰 유연하게 만들수있다는 관점이 신기하네요. import도 .interf..
세가지 패러다임 - 객체지향과 함수형을 공부하면서 이렇게 아키텍쳐를 설계하면 test 또는 좀 더 유연한 프로그램을 짤 수 있다고 생각하였지만, 무엇을 앞선 개발자들이 개발자들의 특정 행동을 포기함(막음)으로써 이러한 3가지의 패러다임을 가져왔는지 알 수 있었다.. - 띵언: 오히려 소프트웨어는 과학과 같다. 최선을 다하더라도 올바르지 않음을 증명하는데 실패함으로써 올바름을 보여주기 때문이다. 구조적 - 제어흐름을 직접적으로 변환하는것을 막음 goto문을 사용 못하게 만듬으로써 기능별로 모듈을 분리할 수 있었고, 그 기능을 저수준으로 또 다시 책임을 지는 모듈로 분리할수있었다... 구조적 프로그래밍은 프로그램을 증명 가능한 세부 기능 집합으로로 재귀적 으로 분해할 것 을 강요한다. 테스트 주도로 개발한다..
설계와 아키텍처란? 빨리 가는 유일한 방법은 제대로 가는것이다. 기획이나 스프린트 압박으로 우선 빠르게 개발하고 그걸 나중에 개선할 생각은 버려라 어차피 다음 기획 티켓은 나에게 이미 할당되어있다.... 나중에 내가 엉망이된 코드를 정리할수있다고 과신하지마라 ㅋㅋㅋ 와닿네요.. 후.. 이번에 레거시를 정리하면서 느낀건데 test를 작성하면서 개발한 코드와 test를 나중에 붙이는 코드는 코드 퀄리티가 달라질수밖에 없다고 생각이 들었고 첫단추를 잘 못낀 코드는 계속해서 엉키기만 할 뿐이라는걸요.. 두가지 가치에 대한 이야기 아키텍처를 위해 투쟁하라! 나는 소프트웨어를 안전하게 보호해야 할 책임이 있다. 소프트웨어는 동작하는 프로그램이 아닌 유연한 프로그램을 의미한다. 좋은 아키텍트는 특성과 기능을 개발하기..
Why? 도커에 대한 좀 더 이해를 통해 image 최적화를 하여 좀 더 빠를 scale out을 하고싶어서 현재 mlops image가 크다보니 scale out되는데 시간이 꽤 걸리는 부분이 있음. 개념 정리 컨테이너란? - 가상 리소스를 들고있는 독립적인 환경을 가지는 상자( 호스트명 ip 주소, 디스크) - 독립적인 환경은 가지지만 컨테이너가 실행되는 컴퓨터의 리소스는 공유한다. 가상머신과 달리 운영체제를 전부 포함하지 않기 때문에 가상머신 대비 가볍다. - 종료된 컨테이너도 명시적으로 삭제하지 않는 한 그대로 남아 있다. 컨테이너의 파일 시스템도 그대로 남아있다. 네트워크 - 컨테이너는 기본적으로 외부 환경에 노출되지 않는다. 각 컨테이너는 고유의 ip를 갖지만, 이 ip주소는 도커가 관리하는 ..
http://www.yes24.com/Product/Goods/74219491 오브젝트 - YES24 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 설계란 코드를 배치하는것 그렇다면 왜 좋은 설계를 해야할까 생각한다면 그것은 현재 기능은 온전히 수행하면서 추가되거나 변경되는 내용을 수용할 수 있게 설계해야한다. 이 책을 읽으면서 정리한 생각은 결국 변경에 유연하게 대처를 어떻게 해야할까 고민한다면 결합도를 낮추고 응집도를 증가시킴으로써 변경의 취약하지 않게 될 수 있다. 왜 응집도가 높으면 변경에 유연할까 고민했을 때 한 곳의 관련 변경내용이 몰려있..
좋은 코드란? 모두가 읽기쉬운코드, 확장성이 용이한 코드 -> 나는 돈이되는 코드 시간이 지나도 큰 리팩토링없이 돈을 벌어주 줄 수 있는 코드가 좋은 코드 RESTful API? API 설계의 중심에 리소스가 있고 http method를 통해 자원을 처리하도록 설계하는 디자인 패턴-> 리소스는 uri, 행위는 http method(Get, post, put, patch, delete) 분명한 목적으로 사용-> entity에 대한 내용은 body에 담는다. -> API 버전정보, 응답받고자하는 MIME 타입등은 header에 담는다. -> header와 body는 http header와 http body로 나눌수도 있고, http body에 들어가는 json 구조로 분리할 수도 있다.-> 특정 API를 변..