분류 전체보기
-
[백준] 1475 방 번호Algorithm Solving/BAEKJOON 2020. 9. 27. 23:56
BAEKJOON [1475] 방 번호 문제 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 입력 & 출력 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 첫째 줄에 필요한 세트의 개수를 출력한다. 예제 입력 출력 9999 2 코드 import java.util.Scanner; public class Main { public st..
-
[JAVA] Number 클래스와 Value 메서드JAVA 2020. 7. 13. 23:24
Number 클래스와 Value 메서드 안녕하세요? 장장스입니다. 자료형 자바에는 기본형(Primitive Type)과 참조형(Reference Type)이 있습니다. 일반적으로 다음과 같이 분류 할 수 있습니다. Java Data Type ㄴ Primitive Type ㄴ Boolean Type(boolean) ㄴ Numeric Type ㄴ Integral Type ㄴ Integer Type(short, int, long) ㄴ Floating Point Type(float, double) ㄴ Character Type(char) ㄴ Reference Type ㄴ Class Type ㄴ Interface Type ㄴ Array Type ㄴ Enum Type ㄴ etc. 참조형은 Byte, Double, ..
-
[JAVA] SMTP 메일 이미지 첨부 방법 3가지JAVA 2020. 7. 4. 19:52
SMTP 메일 이미지 첨부 에러 자바로 메일을 보내야하는 일이 생겨 SMTP를 사용해 메일을 보내는 코드를 작성했다. 메일내에 이미지를 첨부해서 전송해야 했고 CID 방식을 사용해서 코드를 작성했다. 로컬에서의 테스트는 깔끔하게 네이버, 구글 등 전송받은 메일이 모두 정상적으로 출력이 되었으나 개발서버에서 테스트를 진행했을 때 일부 메일에서 정상적으로 작동이 되지 않는 일이 생겼다. 구글신의 도움을 받아 찾아본 결과 3가지의 방법이 있었다. Inline embedding 인라인 임베딩 방법은 이미지를 base64로 인코딩 하는 방법이다. 쉽게 말하면 이메일에 이미지를 문자열로 변환하여 HTML 태그를 통해 이메일에 이미지를 내장하는 방법이다. 굉장히 간단하지만 잘 사용하지는 않는다. 이메일 대략 이런식으..
-
[JAVA] 인터페이스 (interface)JAVA 2020. 7. 4. 19:12
JAVA interface 인터페이스(interface) 인터페이스는 클래스가 제공하는 기능을 명시적으로 선언하는 역할을 합니다. 인터페이스는 추상 메서드와 상수로만 이루어져 있습니다. 즉, 구현된 코드가 없기 때문에 당연히 인터페이스로 인스턴스(객체)를 생성할 수 없습니다. 그렇다면 왜 인터페이스를 사용하는 걸까요? 인터페이스를 만드는 이유? 인터페이스는 개발자에게 내가 만든 프로그램이 어떤 메서드를 제공할 건지 알려주는 설명서와 같은 역할을 합니다. 예를 들어 계산이 프로그램을 구현한 CalBase클래스가 있다고 해봅시다. 우리는 이 인터페이스클래스만 보고도 이 메서드가 어떤 매개변수를 요구하고 있으며 어떤 반환값을 요구하는지 알 수 있습니다! 전자정부 표준 프레임워크에서는 Service 패키지에서 ..
-
[JAVA] IS-A 관계, HAS-A 관계JAVA 2020. 6. 30. 21:00
IS-A 관계, HAS-A 관계 안녕하세요? 장장스입니다. IS-A 관계, HAS-A 관계에 대해 알아보겠습니다. 객체지향 프로그래밍에서 우리는 상속을 사용합니다. 언제 상속을 사용해야 할까요? IS-A 관계 상속은 IS-A관계에서 사용하는 것이 가장 효율적입니다. IS-A 관계(is a relationship, inheritance)는 일반적인 개념과 구체적인 개념의 관계입니다. 사람은 동물이다. 소는 동물이다 새는 동물이다. 위와 같은 관계입니다. 즉, 일반 클래스를 구체화 하는 상황에서 상속을 사용합니다. 상속을 사용하면 많은 장점이 있지만, 하위 클래스가 상위 클래스에 종속되기 때문에 이질적인 클래스 간에는 상속을 사용하지 않는 것이 좋습니다. 단순히 코드를 재사용할 목적으로 서로 관련이 없는 개..
-
[JAVA] 메서드 오버라이딩JAVA 2020. 6. 27. 19:43
메서드 오버라이딩 안녕하세요? 장장스입니다. 상위 클래스 메서드를 재정의 메서드 오버라이딩은 하위클래스에서 상속받은 상위 클래스의 메서드를 재정의 하는 기능을 말합니다. 아래는 Cutomer 클래스입니다. 물건을 구매하는 Buy 메서드가 정의되어 있습니다. public class Customer { protected int id; protected String name; public void showCustomer() { System.out.println("아이디 "+id+"의 고객이름은 "+ name+"입니다."); } public int Buy(int price) { return price; } } 다음과 같이 Cutomer 클래스를 상속받은 VIPCustomer 클래스를 생성했습니다. 그런데 VIP..
-
클린 코드를 위한 5가지 팁 (feat. 니콜라스)etc 2020. 6. 27. 15:55
클린 코드를 위한 5가지 팁! 코드를 짜고나서 한참의 시간뒤에 내 코드를 보면 가끔 과거의 나를 패버리고(?) 싶을 때가 있다. 어떻게 하면 코드를 깔끔하게 적을 수 있을지 항상 고민이다. 니꼴라스 형님이 클린코드 작성 팁을 알려주셨다. 클린코드? 진정한 클린코드는 3,6,9개월 후에도 혹은 다른 사람이 코드를 보았을 때 별다른 부연설명 없이 한눈에 딱 들어오는 코드라고 할수 있다. TIP 1 검색이 가능한 이름을 사용한다. TIP 2 함수명은 반드시 동사를 사용한다. 함수는 무조건 단 한가지 액션만 수행해야한다. TIP 3 함수의 인수는 3개 이하를, 많은 인자가 필요하다면 configuration object를 사용하자. TIP 4 함수의 인수는 boolean 값을 사용하지 않는다. 이것은 if-el..
-
[MySQL] 대소문자 구분 하는 방법, 'lower_case_table_names'database/mysql 2020. 6. 24. 23:10
MySQL, 대소문자 구분 하는 방법, 'lower_case_table_names' 안녕하세요? 장장스입니다. 오늘은 MySQL 이용시 대소문자를 구분하는 문제에 대한 포스팅입니다. MySQL이 대소문자를 구분하는 방법 MySQL에서 데이터베이스는 데이터 디렉토리(data directory) 내의 디렉토리들(directories)에 상응됩니다. 데이터베이스를 구축하고 여러가지 테이블을 생성하게 되면 각각의 테이블들은 데이터베이스 디렉토리의 하나의 파일로 남게 됩니다. 트리거 또한 파일로 저장이 됩니다. 즉, 데이터베이스를 구축한 운영 체제에 따라 데이터베이스, 테이블, 트리거의 이름의 대/소문자 구분에 대해 영향을 줄 수 있다는 겁니다. 많은 사람들이 사용하는 Windows에서는 대소문자를 구분하지 않지..
-
[JAVA] 상속에서 클래스 생성과 superJAVA 2020. 6. 23. 23:47
상속에서 클래스 생성과 super 안녕하세요? 장장스입니다. 오늘은 객체지향 프로그래밍의 중요한 특징 중 하나인 상속(inheritance)에 대해 포스팅 해보겠습니다. 클래스의 상속 B 클래스가 A 클래스에게 상속받는다고 하면 다음과 같이 나타낼 수 있습니다. 클래스 간 상속을 표현할 때 하위 클래스가 상위 클래스를 바라본다는 느낌으로 화살표가 하위클래스에서 상위 클래스로 표시됩니다. 상위 클래스는 부모 클래스, 하위 클래스는 자식 클래스 라고도 불립니다. 자바에서 상속은 extends 예약어를 사용합니다. class B extends A{ } 하위 클래스가 생성되는 과정 그렇다면 하위 클래스는 어떻게 상위 클래스를 상속을 받을까요. 우리는 상속을 받는 하위 클래스가 생성되는 과정을 살펴 볼 필요가 있..
-
[JAVA] 자바, ArrayListJAVA 2020. 6. 22. 07:07
자바, ArrayList 안녕하세요? 장장스입니다. 오늘은 배열 친구 ArrayList 클래스에 대해 포스팅하겠습니다. 기존 배열의 단점 기존에 배운 기본 배열은 프로그램에서 사용하려면 항상 배열 길이를 정하고 시작해야만 했습니다. 그런데 배열의 길이를 변경해야만 하는 상황이 왔을 때 고정된 배열의 길이 때문에 코드를 수정해야만 하는 번거로운 일이 생깁니다. 합니다. ArrayList 클래스의 주요 메서드 ArrayList 클래스에는 필요한 메서드들이 이미 많이 만들어져 있습니다! 대표적인 메서드들입니다. 메서드 설명 boolean add(E e) 요소 하나를 배열에 추가합니다. E는 요소의 자료형을 의미합니다. int size() 배열에 추가된 요소 전체 개수를 반환합니다. E get(int index..