본문 바로가기

IT

[오브젝트] 3장 역할, 책임, 협력 안녕하세요 남갯입니다 오늘은 오브젝트의 역할, 책임, 협력에 대해 포스팅 해보려고 합니다. 객체지향은 "역할 책임 협력" 객체지향 패러다임의 관점에서 '역할', '책임', '협력'이다. 이 세가지가 제자리를 찾지 못한다면 응집도 높은 클래스와 중복없는 상속 계층을 구현한다고 하더라도 어플리케이션은 침몰할것 이다. 객체이향의 본질은 협력하는 객체들의 공동체를 창조하는것이다. 그림과 같이 객체지향의 원칙을 따르는 어플리케이션의 제어흐름은 한 객체에 의해 통제되지 않고 다양한 객체들 사이에 균형있게 분배되는 것이 일반적이다. 객체들은 요청의 흐름을 따라 자신에게 분배된 로직을 실행ㅎ면서 어플리케이션의 전체 기능을 완성한다. 1. 객체들이 어플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력이라고 한다...
[오브젝트] 2장 객체 지향 프로그램 안녕하세요 남갯입니다 오늘은 오브젝트 2장 3장에 대해 포스팅 해보려고 합니다. 영화 - 영화는 영화에 대한 기본정보를 표현한다. - 제목, 상영시간 가격정보와 같이 영화가 가지고 있는 기본정보를 가리킬때 영화라는 단어를 사용 상영 - 상영일자, 시간, 순번등을 가리키기 위해 상영이라는 용어를 사용한다. 할인액을 결정하기 위한 조건 할인조건 할인 조건은 가격의 할인 여부를 결정하며 '순서조건' , '기건조건' 두 종류 순서조건 순서조건은 상영순번을 이용해 할인여부를 결정 순번이 10인경우 10번째로 상영되는 영화를 예매한 사용자들에게 할인 혜택을 제공 기간조건 기간조건은 상영시작 시간을 이용해 할인 여부를 결정한다. 요일, 시작시간, 종료시간 세부분으로 구성되며 영화 시작 시간이 해당 기간안에 포함될 경..
[안드로이드] 전이 의존성 exclude transitive dependency 안녕하세요 남갯입니다 오늘은 개발경험하다가 빌드 에러가 난 전이 의존성에 대해 포스팅 해보려고 합니다. 프로젝트가 모듈화가 되어있는데, 빌드하는 버젼이 꼬이는 문제가 있었습니다. 문제점 1. A모듈에서 특정 라이브러리를 사용하고 있었는데, 해당 라이브러리에서 구글플레이 라이브러리를 사용하고 있었다. 2. 공통모듈로 뽑을수있는 코드가 있어서 구글플레이 라이브러리의 일부 기능을 공통모듈로 옮겨 사용했다. 여기서 문제가 된점은 A 모듈에서 사용한 라이브러리가 의존성전이가 된 것입니다. 즉 A모듈내의 라이브러리에서 의존성이 전이 되어 빌드버전이 꼬인것이다. 의존성확인 위와같이 dependency를 보는방법은 1. 프로젝트로 변경한뒤 external library를 확인한다. 2. 아래의 방법을 통해 그래들에서 ..
[오브젝트] 1장 객체설계 안녕하세요 남갯입니다. 이론보단 실무 이론은 1970년부터 나왔지만 이론보다는 실무가 중요하다고 합니다. 모든 이론의 기반은 실무에서 나온것이고 실무로부터 나온것들을 이론화 한것들이 대부분이기 때문이다. 따라서 실무에서 다양한 규모로 유지보수 하고있지만 효과적인 이론이 발표된것은 거의 없다. 이벤트 시작 소극장 홍보 이벤트를 기획하기로 했다. 당첨자와 일반 관람객을 구분해서 티켓을 판매한 후에 입장시켜야한다. 초대일자를 가지고 있는 초대장 class Invitation {private val whens : LocalDateTime } 티켓을 소지할 수 있는 티켓클래스 class Ticket(val fee : Long = 0L) 소지품을 보관하 가방 클래스 class Bag( val amount: Long..
[안드로이드] 파일과 MediaStore 싱크 맞추기 이미지를 삭제시에 해당 파일 경로와 미디어 스토어 간에 싱크가 안맞는 경우가 있을 수 있다. 따라서 미디어 스토어에 싱크를 맞추기 위해 해당 파일에 대한 경로를 일일이 확인하는 방법을 통해 확인이 가능하다. if (!File(path).exists()) { contentResolver.delete(deleteUri2, null, null) } 또한 아래와 같이 동작시킬경우 섬네일 폴더의 모든 이미지가 삭제된다. contentResolver.delete(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, null, null)
클린코드 15장 JUnit , 16장 SerialDate 리펙터링, 17장 휴리스틱 안녕하세요 남갯입니다. 오늘은 클린코드 15,16,17장에 대해 정리해보려고합니다. JUnit - JUnit은 저자가 많은 자바 테스트 프레임워크이다. 시작은 에릭감마와 켄트백이 만들었다. - 모듈을 작성시 보이스카우트 규칙을 따른다 * 보이스카우트 규칙이란? 떠날때는 찾을때보다 캠프장을 더 깨끗하게 떠나라 다시 찾아올 수 있는 사람에게 더 수월한 환경을 만들어준다는 뜻. - 테스트코드 혹은 코드 작성시 의도를 명확히 표현하려면 조건물을 캡슐화해라(메서드로 뽑아 적절하게 이름을 붙여라) 를 if (expected == null || actual == null || areStringsEqual()) return Assert.format(message, expected, actual); 이런식으로 if (s..
git 컨벤션 깃 컨벤션 참조페이지 https://doublesprogramming.tistory.com/256 commit type feat 새로운 기능 추가 fix 버그 수정 docs 문서수정 style 코드포맷팅 refactor 코드 리펙토링 test 테스트 코드 추가 chore 빌드 업무 수정 내용 fix와 같이 ed를 붙이지 않음 fix#번호 링크 - 내용 - 내용
[안드로이드] api와 implementation 차이 https://jongmin92.github.io/2019/05/09/Gradle/gradle-api-vs-implementation/ api와 implementation 정리 api: 의존 라이브러리 수정시 해당 모듈을 의존하고 있는 모듈들 또한 재빌드A(api)