전체 글(32)
-
[오브젝트 : 코드로 이해하는 객체지향 설계] 4. 설계 품질과 트레이드오프
4장에서는 데이터 중심의 영화 예매 시스템을 보고 이것이 얼마나 객체지향과 거리가 멀고, 어떤 설계방법이 객체지향적인지를 보여주는 장입니다. 설계 트레이드오프 캡슐화 - 변경 가능성이 높은 부분을 객체 내부로 숨기는 추상화 기법 구현 - 변경될 가능성이 높은 부분 인터페이스 - 상대적으로 안정적인 부분 변경될 수 있는 어떤 것이라도 캡슐화 해야 한다. 응집도와 결합도 응집도 - 모듈에 포함된 내부 요소들이 연관돼 있는 정도 모듈 내의 요소들이 하나의 목적을 추구하냐(높은) 서로 다른 목적을 추구하냐(낮은)에 따라서 응집도를 갖게 된다. 객체지향에서의 응집도 ⇒ 객체 또는 클래스에 얼마나 관련 높은 책임들을 할당했는지 결합도 - 의존성의 정도를 나타내며 다른 모듈에 대해 얼마나 많은 지식을 갖고 있는지를 ..
2021.08.27 -
[자바스크립트] Object.keys, Object.values, Object.entries의 차이
let television = { name: "kbs", channel: 7 } 다음과 같은 객체가 있을때 각 메서드별 값 Object.keys(television) => ["name", "channel"] Object.values(television) => ["kbs", 7] Object.entries(television) => [["name","kbs"], ["channel", 7]]
2021.08.25 -
[오브젝트 : 코드로 이해하는 객체지향 설계] 3. 역할, 책임, 협력
객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정 1. 협력(collaboration) 협력이란 객체들이 기능 구현을 하기 위해 요청과 응답을 통해 상호작용 하는 것을 협력이라고 합니다. 여기서 상영은 영화에 메세지를 전송하여 예매자의 요금 계산을 요청을 합니다. 왜냐하면 영화가 요금 계산을 하기 위해 필요한 기본 요금과 할인 정책을 가장 잘 알고 있기 때문입니다. 상영이 요금계산을 위해 영화의 내부구현에 직접 접근을 하면 캡슐화의 원칙을 위반하게 되고 또한 영화의 내부 구현을 바꾸면 상영도 영향을 받게 되기 때문에 → 자신이 할 수 없는 일을 다른 객체에게 위임하면 협력에 참여하는 객체들의 자율성을 향상 시킬 수 있습니다. ※협력이 설계를 위한 문맥을 결정한다..
2021.08.24 -
spring cloud config client설정(parameter store)
이번에는 저번글에 이어서 spring clout confg client를 설정하는 방법을 작성해 보겠습니다. 먼저, dependency에 spring cloud config client와 spring cloud starter bootstrap을 추가합니다. client를 설정하기 위해서는 bootstrap.yml(properties)을 사용하는데 spring boot 2.4부터는 사용이 불가하기 때문에 starter bootstrap을 추가해서 bootstrap.yml을 사용할 수 있게 하는 것입니다. 다음으로 bootstrap.yml을 사용하기 위해 application.yml에 다음을 추가해줍니다. 이제 bootstrap.yml을 설정합니다. 앞에서 설정한 application name과 실행중인 서..
2021.08.23 -
spring cloud config server설정(AWS parameter store)
이번에는 저번 작성한 git에 저장하는 방법이 아닌 aws parameter store에 저장하는 방법을 적어보겠습니다. 먼저, 첫 번째로는 dependency에 spring cloud config server와 aws java sdk ssm을 추가합니다. 다음으로 parameter store에 값을 저장하는 코드를 작성합니다. @Override public void add(Parameter resource) { log.warn("[add] resource = {}", resource); try { //값을 json형식으로 변환 ObjectMapper mapper = new ObjectMapper(); String param = mapper.writeValueAsString(resource.getProp..
2021.08.20 -
[AWS] IAM(Identity and Access Management)
이 글에서는 aws에서 사용하는 IAM(Identity and Access Management)에 대해서 작성할 것입니다. IAM이란, AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스로 IAM을 사용하여 인증 및 권한 부여의 대상을 제어합니다. 사용자와 그룹을 생성하고 AWS의 각 리소스에 대해 접근제어와 권한관리를 제공한다. 따라서 전체 권한이 아닌 필요한 권한만 주기 때문에 보안성이 높아진다. → 지역 설정이 필요 없다. IAM계정을 처음 생성할 때는 해당 계정의 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 SSO(Single Sign-On) ID로 시작합니다. 이를 AWS 계정 루트 사용자라고 합니다. 이 계정은 IAM 사용자를 처음 생성할 때만 사용하는 것이 ..
2021.08.19