목록분류 전체보기 (198)
포도가게의 개발일지
Why? 도커에 대한 좀 더 이해를 통해 image 최적화를 하여 좀 더 빠를 scale out을 하고싶어서 현재 mlops image가 크다보니 scale out되는데 시간이 꽤 걸리는 부분이 있음. 개념 정리 컨테이너란? - 가상 리소스를 들고있는 독립적인 환경을 가지는 상자( 호스트명 ip 주소, 디스크) - 독립적인 환경은 가지지만 컨테이너가 실행되는 컴퓨터의 리소스는 공유한다. 가상머신과 달리 운영체제를 전부 포함하지 않기 때문에 가상머신 대비 가볍다. - 종료된 컨테이너도 명시적으로 삭제하지 않는 한 그대로 남아 있다. 컨테이너의 파일 시스템도 그대로 남아있다. 네트워크 - 컨테이너는 기본적으로 외부 환경에 노출되지 않는다. 각 컨테이너는 고유의 ip를 갖지만, 이 ip주소는 도커가 관리하는 ..
https://semaphoreci.com/blog/what-is-monorepo What is monorepo? (and should you use it?) - Semaphore Monorepos can foster rapid development workflows. In this post, we’ll examine if they are the right fit for you and your company. semaphoreci.com 우선 대형 모노레포를 운영하는 회사로 Google, MS, Facebook, Twitter가 잘 알려져있다. Monorepo : 다양한 project들을 하나의 repository에서 통합하여 관리 Multirepo : 각각의 project들을 각각의 repository..
DI 시스템에는 두가지 역할인 provider와 consumer 역할이 있다. Angular는 injector를 이용하여 provider와 consumer의 interaction을 수월하게 해줍니다. dependency가 요청되었을때, injector는 registry에서 사용 가능한 instance가 있는지 확인합니다. 그렇지 않은 경우 새 instance가 만들어지고 registry에 저장됩니다. angular는 application bootstrap중에 root injector를 만들뿐만아니라 필요에 따라 다른 injector도 만들게 됩니다. 생성자 depedency를 확인하여 injector에 해당 instance가 등록되어있는지 확인 후 없는경우 생성 후 등록해줍니다. DI 프레임워크는 기본적..
http://www.yes24.com/Product/Goods/74219491 오브젝트 - YES24 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 설계란 코드를 배치하는것 그렇다면 왜 좋은 설계를 해야할까 생각한다면 그것은 현재 기능은 온전히 수행하면서 추가되거나 변경되는 내용을 수용할 수 있게 설계해야한다. 이 책을 읽으면서 정리한 생각은 결국 변경에 유연하게 대처를 어떻게 해야할까 고민한다면 결합도를 낮추고 응집도를 증가시킴으로써 변경의 취약하지 않게 될 수 있다. 왜 응집도가 높으면 변경에 유연할까 고민했을 때 한 곳의 관련 변경내용이 몰려있..
public - contract method,state를 external, internal 모두 공개 external - contract method, state를 contract 외부에서만 접근할 수 있도록 공개 private - contract state, method를 현재 contract 내부에서만 쓸 수 있도록 설정 internal - contract를 상속받은 또는 해당 contract에서만 접근할 수 있도록 설정 view - storage 상태변수에 접근할 수 있으며 외부에서 data를 읽을 수 만있다. write가 발생하지 않으니까 gas가 비용이 발생하지 않는다. pure - local 상태변수에만 접근할 수 있으면 때문에 읽기와 쓰기 모두가 불가능하다.
IaC란? - 인프라 구성을 코드를 이용해 자동으로 구축, 관리, 프로비저닝하는 IT 인프라 프로비저닝 프로세스 why? - 수동으로 관리하였을때 일어날 수 있는 누락, 설정 미스들을 없앨 수 있다. - 이러한 IaC의 장점은 단순히 서버관리의 효율성만 있는 것이 아닙니다. 인프라를 코드로 관리함으로써 어플리케이션을 관리하듯이 코드 관리와 배포 프로세스를 지킬 수 있습니다. 예를 들면 github / codecommit(AWS) 에 인프라스트럭쳐 코드를 올려서, Jenkins 또는 Circle CI 같은 툴들로 지속적 배포 프로세스를 갖출 수 있죠. how? iac 툴 Chef Puppet Red Hat Ansible Automation Platform Saltstack Terraform AWS Clou..
CloudFront는 AWS에서 제공해주는 cdn 서비스이다. Signed Url & Cookie? why? 유료 사용자 또는 일부 사용자용으로 각종 컨텐츠, 비즈니스 데이터, 각종 문서에 대한 액세스를 제한하고자 할 때 사용되는 cloudFront의 기능입니다. 사용자가 특별한 CloudFront 서명된 URL 또는 서명된 쿠키를 사용하여 프라이빗 콘텐츠에 액세스하도록 합니다. 사용자가 오리진 서버(저희 서비스에 경우 S3)에서 직접 콘텐츠에 액세스하는 URL이 아닌 CloudFront URL을 사용하여 콘텐츠에 액세스해야 합니다. signed URL와 cookies의 차이 - Signed URL: 개별 파일에 대한 액세스를 제공한다. 즉, 파일 하나 당 하나의 URL을 얻는다. - Signed Coo..
책임 할당하기 객체에 책임을 할당하는 기본적인 원리 데이터보다 행동을 먼저 결정해라(인터페이스를 먼저 작성하라고 생각됨: 뒤에서 잘못됬다고 느낌 인터페이스를 쓰라는게 아니라 메세지를 먼저 작성해라라고 본다) -> 객체에게 중요한것은 데이터가 아니라 외부에 제공하는 행동이다. 클라이언트 관점에서 객체가 수행하는 행동이란 곧 객체의 책임을 의미한다. 협력이라는 문맥 안에서 책임을 결정해라 메시지를 전송하는 클라이언트 의도에 적합한 책임을 할당해야 한다.(메서드 써놓고 이건 누가 가져가야하지? 즉 문맥을 먼저 작성하고 각책임을 할당해줘라라고 이해된다.) 메세지가 객체를 선택하게 해야 한다.("메세지를 전송해야 하는데 누구에게 전송하지?") 데이터 중심으로 작성하게 되면 캡슐화를 신경쓰면서 해야됨 누굴 인터페이..