본문 바로가기

전체 글

아키텍처_애플리케이션의 설계 원칙 1. 단일 책임원칙 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함 2. 개방 - 폐쇄 원칙 소프트웨어가 확장에 대해서는 열려있어야 하고, 수정에 대해서는 닫혀있어야 한다는 원칙 개방 폐쇄 원칙이 잘 적용된 경우 새로운 기능을 추가하거나 기존 기능을 변경하기 용이해진다. 유연성, 재사용성, 유지보수등의 이점이 있음 3. 리스코프 치환원칙 클래서 S가 클래스 T의 자식클래스이라면, 별다른 변경없이 부모 클래스를 자식클래스로 치환 할 수 있어야한다는 원칙 4. 인터케치스 분리원칙 어떤 클래스가 자신이 이용하지 않는 메서드에 의존하지 않아야한다는원칙. 5. 의존 역전 원칙 모듈들을 분리하는 특정 형식을 지칭 상위모듈은 하위모듈에 의존해서는 안된다. 상위 모듈과 하위모듈은 모두 추.. 더보기
[Android] DataBinding 사용하기 데이터 바인딩은 UI를 구성함에 있어 코드상에 반복적인 귀찮은 작업을 해소시켜주는 기능으로 보면 된다. 선언부에 기계적으로 작성해야한 했던 findById() 를 적어도 java파일 안에서 그만 볼수 있으니까 findViewById(R.id.sample_text).apply { text = viewModel.userName } 이런 코드를 layuot을 구성하는 xml파일 안에서 java파일에서 지정해준 해당 위젯의 변수명과 매치시켜주면 된다. 이점은 ? 파일의 단순화, 유지보수의 편리성, 메모리누수 및 nullpoint excention을 방지할수 있다. 1. 빌드환경 - 데이터 바인딩 추가 android { ... dataBinding { enabled = true } } dataBinding요소를 .. 더보기
가로수길 / 애플스토어 이용시 주차 팁 종종 가로수길에 차를 가지고 가는데 여러번 시행착오 끝에 정착한 주차팁을 공유해 보려고 합니당 ​ ​ 먼저 가로수길 메인 거리에 가면 노상 주차공간이 있는데요 !! 여기는 매번 시설관리공단에 전화해서 문의해야지 하고는 아직 못하고 있는데 유료 주차에 대한 공지가 붙어있지도 않고 거주자 우선 구역도 아니고 주차하면 어디선가 어슬렁어슬렁 돈을 받으러 오는 사람은 무슨 이유로 받아가는지, 어디 소속인지도 모르겠더라구요 ( 경미한 사고라도 되면 과연 정상적인 처리가 될지도 모르겠고 저는 못믿겟더라구요 관리는 되고있는 곳인지 ? ) 위치상 편리하긴 하지만, 이러한 의문으로 비추합니다. 내차는 소중하니까요. :) ​ ​ ​ ​ ​ 그래서 찾아낸곳이 공영 주차장 ! http://naver.me/FLBXIiyF 신구스.. 더보기
[Android] Annotation 사용법 및 종류 Java에서는 API의 의도를 애너테이션으로 명시해 결함 탐지에 활용하는 기법이 발달했다고 한다. 애너테이션은 Java표준 정의는 아니여서 FingBugs, Checker Framework 같은 도구에서 제공하는 애너테이션을 사용하거나 직접 선언해야 한다. 하지만 안드로이드 개발 환경인 Intellij IDEA는 별도로 애너테이션 패키지 라이브러리를 IDE에 제공한다. Android 환경은 일반적인 Java 환경보다 잠재적 문제의 소지가 많은데 그 원인중 하나는 성능상 이점을 위해 Enum, EnumSet보다 프리미티브 타입을 사용하는 점이다. (비트 플래그 연산 또는 int 타입 상수 사용; px, dp, color 등의 단위에 별도 타입을 부여하지 않고 사용; R 클래스가 각종 리소스를 int타입 아.. 더보기
아이패드 에어 4세대(스카이 블루)_셀룰러/와이파이 모델 구입 리뷰 그동안 한번도 아이패드를 갖고 싶다는 생각하지 않았는데 ! 올해 갑자기 엄청 사고 싶어졌고 ( 지름신 뿜뿜ㅠㅠ) 어찌 어찌 하다보니 출시 몇일만에 내 품에 안긴 아이패드 에어 4 ! (구입일 : 2020.11.02) 하.지.만. 그리 순탄하지는 않았는데... ​ 게으른 우리는 애플 스토어에 구입 예약 및 방문 예약을 하지 않고 그냥 가로수길 애플 스토어를 갔더니 ​ ​ 당연히 퇴짜 ㅠㅠ 구경도 못할줄은 ㅠㅠㅠㅠ ​ 구경도 못하고 발걸음을 돌렸다. ​ ​ ​ ​ ​ 주말에 예약을 하고 다시 사러오자 했지만, 아쉬웠던 우리는 주차장 근처에서 규동 먹으면서 프리스비, 에이샵, 윌리스 ​ 방문 가능한 거리의 모든 매장에 전화해보기 시작 @_@ ​ ​ ​ ​ 밥도 먹는둥 마는둥 전화만 붙잡고 알아본 결과 에이샵 .. 더보기
[프로그래머스] 최대공약수와 최소 공배수 (Java) 문제 내용 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. class Solution { public static int[] solution(int n, int m) { int[] answer = new int[2]; // 0 : 최소공배수 , 1 : 최대공약수 int a= get_gcd(n,m); System.out.println("최대공약수 : "+ a); int b= get_lcm(n,m); System.out.println("최소공배수 : .. 더보기
[프로그래머스] H index (Java) 문제 내용 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. import java.util.Arrays; class Solution { public int solution(int[] citations) { int answer .. 더보기
[프로그래머스] 행렬의 덧셈 (Java) 문제 내용 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0].length]; for(int i = 0; i < arr1.length; i++){ for(int j = 0; j < arr1[i].length; j++){ answer[i][j]=arr1[i][j]+arr2[i][j]; } } return answer; } } 더보기