JAVA 20

[디자인패턴] Singleton

Singleton 5-1) 다음 TicketMaker 클래스는 getNextTicketNumber 메소드를 호출할 때마다 1000, 1001, 1002, ... 라는 수를 순서대로 반환하기 위한 것입니다. Ticket의 번호나 일련번호를 생성할 때 사용합니다. 이 TicketMaker 클래스는 현재 상태라면 인스턴스를 몇 개라도 만들 수 있습니다. 여기에 SingleTon 패턴을 적용해서 인스턴스가 하나만 만들어지도록 하십시오. 아직 SingleTon 패턴이 아닌 TicketMaker 클래스 - TicketMaker.java public class TicketMaker { private int ticket = 1000; public int getNextTicketNumber() { return ticke..

JAVA 2022.03.21

[디자인패턴] Factory Method

FactoryMethod 4-1) 예제 프로그램에서는 IDCard 클래스의 생성자는 public이 아닙니다. 이것은 무엇을 나타내고 있습니까? public class IDCard extends Product { ... IDCard(String owner) { ... this.owner = owner; } ... } 위와 같이 앞에 아무런 접근제어자가 붙어있지 않은 경우라면, 디폴트로 package 접근이라고 볼 수 있습니다. package : 같은 패키지에 선언되어있는 다른 클래스까지만 접근이 허용된다. 따라서 IDCard의 인스턴스는 패키지 외부로부터 보호되어있기 때문에, 같은 패키지에 있는 IDCardFactory를 경유해야합니다. → 유지보수성 +) 만약 생성자가 public이라면? //기존 Mai..

JAVA 2022.03.21

[sort] 좌표 정렬

좌표 정렬 문제를 풀며 구글링을 하다가 좋은 개념들을 배워서 꼭 기록해야겠다고 생각했다. 문제) https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 해결방법은 두가지가 있는 것 같다. 1. Comparable 인터페이스의 구현클래스(Point)를 작성하고, compareTo 함수를 오버라이딩해 좌표정렬 2. Arrays.sort()의 Comparator를 작성해 좌표정렬 - 람다식 작성법 1-1..

JAVA 2022.02.20

[Sorting] 선택정렬 / 버블정렬 / 삽입정렬

정리하긴 귀찮고 너무 정리를 잘해주신 분의 링크를 걸어둔다. 완전 한번에 이해된다 ~ 선택정렬 public class Selection_Sort { public static void selection_sort(int[] a) { selection_sort(a, a.length); } private static void selection_sort(int[] a, int size) { for(int i = 0; i < size - 1; i++) { int min_index = i; // 최솟값을 갖고있는 인덱스 찾기 for(int j = i + 1; j < size; j++) { if(a[j] < a[min_index]) { min_index = j; } } // i번째 값과 찾은 최솟값을 서로 교환 swa..

JAVA 2022.02.19

[디자인패턴] MVC, MVP, MVVM 에 대해 알아보자

앱 개발 도중, 앱의 개발효율을 높이기 위해 디자인패턴의 도입의 필요성이 느껴졌다. 많은 디자인패턴들이 있지만 가장 유명한 MVC, MVP, MVVM에 대해 알아보고자 한다. 디자인패턴을 한마디로 정리하자면, '역할을 독립적으로 나눈다'라고 할 수 있겠다. 1. MVC Model + View + Controller 구조 Model : 어플리케이션에서 사용되는 데이터 View : 사용자에서 보여지는 UI Controller : 사용자의 입력(Action)을 받고 처리 동작 사용자의 action이 controller에 들어오면, controller는 model을 확인하고 그 model을 보여줄 view를 선택한다. view는 model을 이용해 화면에 보여주게 된다. 단점 view와 model이 의존적이다...

JAVA 2022.01.11

[eclipse] [Git] 이클립스와 깃 연동

이클립스도 생소하고 깃허브도 생소한 나에겐 기록이 필수! 이클립스를 킨다. Window > Perspective > Open Perspective > Git 클릭 그럼 이렇게 뜬다. 필자는 이미 깃허브에 만들어놓은 레포지토리가 있어서, Clone a Git repository를 할 것이다. 이후 뜨는 창에 해당 레포지토리의 URI와 User(닉네임. 아이디 아님) 와 Password를 입력한다. 여기서 해당 레포지토리의 URI 알아내는 법! 더보기 깃에 들어가서 Uri 복사 클릭 후 붙여넣기 하면 된다. 그럼 알아서 Host 와 Path까지 채워진다. branch 와 Directory 선택 후 Finish! (이 때 디렉토리는 empty 상태여야한다.) 그럼 성공적으로 연결이 된다. 여기서! 갑자기 원래..

JAVA 2021.07.29

[eclipse] 'Eclipse 응용 프로그램이 예기치 않게 종료되었습니다.' 오류 해결

Eclipse 응용 프로그램이 예기치 않게 종료되었습니다. 마인크래프트 서버를 열으려고 자바 환경변수를 좀 건드렸더니, 이클립스를 실행시키려 하니까 갑자기 저런 오류가 뜨면서 실행이 안된다. eclipse 아이콘에다 대고 우클릭 > 패키지 내용 보기 이렇게 실행시키면 이클립스가 정상작동된다. 이후, 그냥 Docs에서 이클립스를 실행시켜도 정상적으로 작동된다. 오류 해결! 난 진짜 뭔 큰 오류 난 줄 알고 심장 엄청 쫄렸음....

JAVA 2021.06.18

[eclipse] 이클립스 class import 가 안 될 때 -- 해결!

평소에 하던대로 class를 import하려고 보니 빨간 줄이 쳐지면서 오류가 난다. 이건 또 뭔 오류인가 봤더니... module-info.java 가 문제인 듯 하다. 처음 java project를 생성시켰을 때 갑자기 module-info 파일이 떠서 당황했는데, 이게 문제인가 보다. 삭제하고 다른 자바프로젝트를 생성한다. 이때, 바로 finish버튼을 누르지 말고, next 버튼을 눌러 뒤로 넘어간다. module-info 체크박스를 반드시 해제해야한다. 그러고 클래스 생성 후 코드를 짜고 실행시키면 잘 된다. 근데 swing 프레임 아이콘이 뭔가 웃기다. ㅋㅋㅋ

JAVA 2021.06.12

[환경구축] [맥북] [m1] JDK, 이클립스 설치

지긋지긋한 이클립스 설치방법은 간단하다. 1. jdk 설치 2. eclipse 설치 1. jdk 설치 https://www.java.com/ko/download/ Download Java for Linux 사용자 컴퓨터용 Java 소프트웨어 또는 Java Runtime Environment는 Java Runtime, Runtime Environment, Runtime, JRE, Java Virtual Machine, Virtual Machine, Java VM, JVM, VM, Java 플러그인, Java 추가 기능 또는 Java 다운로드라고도 www.java.com 위 링크로 들어가서 다운로드 받는다 다운로드를 다 받고 예예 버튼 눌러서 실행시키면 알아서 설치가 된다. 매우 편하다. 그다음, java가..

JAVA 2021.06.12