본문 바로가기

분류 전체보기

[오브젝트] 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)
[클린코드] 7장 오류처리 안녕하세요 남갯입니다 오늘은 클린코드의 오류처리에 대해 포스팅 해보려고 합니다. 깨끗한 코드와 오류처리에는 연관성이 있고 상당수의 코드기반은 전적으로 오류 처리 코드에 좌우된다. 오류처리는 중요하고 오류처리로 인해 프로그램 논리를 이해하기 어려워 진다면 깨긋한 코드라 부르기 어렵다. 오류코드보다 예외를 사용하라 if문을 통해 Device의 멈춤 강태를 확인하는 코드는 복잡해진다. 함수를 호출한 즉시 오류를 확인해야 하기 때문이다. 그래서 이 단계를 잊어버리기 쉽다. 그래서 오류가 발생하면 예외를 던지는것이 낫다.그냥 try catch문을 통해 오류를 처리하는것이 낫다. public void sendShutDown() { try { tryToShutDown(); } catch (DeviceShutDownE..
[클린코드] 6장 객체와 자료구조 안녕하세요 남갯입니다 오늘은 클린코드 6장 객체와 자료구조에 대해 포스팅 해보려고 합니다. 변수를 private으로 하는 이유는 남들이 변수에 의존하지 않게 하기 위함이다. 자료의 추상화 public class Point { public double x; public double y; } public interface Point { double getX(); double getY(); void setCartesian(double x, double y); double getR(); double getTheta(); void setPolar(double r, double theta); } 위의 포인트는 직교좌표계를 사용하는것을 알지만 아래꺼는 직교좌표계인지 극좌표계인지 알 길이 없다.변수 사이에 함수라는 계..
[클린코드] 5장 형식 안녕하세요 남갯입니다 오늘은 클린코드 5장 형식에 대해 포스팅 해보려고 합니다. 형식을 맞추는 목적돌아가는 코드가 개발자의 1차적인 의무라 여길지도 모르지만 코드는 후에 코드의 품질에 영향을 미친다.따라서 오랜시간 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 구현스타일과 가독성은 유지보수 용이성과 확장성에 영향을 미친다. 원할한 소통을 장려하는 코드형식 1. 적절한 행 길이를 유지하라. -대략적으로 500줄을 넘기지 않고 200줄 정도인 파일로도 커다란 시스템을 구축 가능하다. 2. 신문기사처럼 작성하라. - 신문기사처럼 독자가 위에서 아래로 최상단에는 요약하는 표제와 읽어가면서 디테일한 세부사항들이 나오게 한다. 이처럼 소스파일도 신문기사와 비슷하게 이름은 간단하면서 설명이 가능하도록 짓는다..