일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 수학
- input
- 자바 thread 실행 순서 제어
- JAVA11
- array
- Easy
- 자바입력
- scanner
- 사칙연산
- heroku
- hash table
- SpringBoot 2
- 카데인 알고리즘
- R
- 자바 스레드 실행 순서 제어
- Kadane's Algorithm
- Today
- Total
목록분류 전체보기 (192)
DeFacto-Standard IT
Spring Form Data to Object - Controller ( GET Method )@RequestMapping(value="/register", Method=RequestMethod.GET) public String registerUserGet(Model model) { // 반드시 객체를 생성 후 Model객체를 사용하여 View에 넘겨야 함, 안만들면 Exception발생 User user = new User(); model.addAttribute("user", user); return "jsp"; }반드시 객체를 하나 생성하여, Model을 통해 View로 넘겨야 한다. - Spring Form (jsp.jsp) modelAttribute속성의 값은 model.addAttribute(..
Method Signature1. 메서드의 이름2. 메서드의 파라미터 타입 Method Type1. 메서드의 리턴 타입2. 메서드 타입 파라미터3. 메서드 인자 타입4. Exception Method Signature가 같다고 Method Reference를 쓸 수 있는게 아니라,Method Type이 같아야 Method Reference를 쓸 수 있다. 이는 상속관계에서, 부모클래스의 메서드가 있을 때, 자식클래스의 메서드에서 오버라이딩을 할 수 있는 조건에 해당한다. 따라서 Super super = new Sub(); super.a()와 같은 Method Reference가 가능해진다.
Method Dispatch : 어떤 메소드를 호출할지 결정하여 실제로 실행시키는 과정을 말한다. 1) Static Dispatch컴파일 시점에서, 컴파일러가 특정 메소드를 호출할 것이라는 걸 명확하게 알고있는 경우이다. 컴파일 시 생성된 바이트 코드에도 이 정보가 그대로 남아있다. 런타임(실행 시점)이 되지 않아도 미리 결정하는 개념이다. 함수를 오버로딩하여 사용하는 경우, 인자의 타입이나 리턴타입 등에 따라 어떤 메서드가 호출될 지 명확하기 때문에, 경우 역시 '미리 알 수 있다' 고 할 수 있다. 이 두개의 오버로딩 된 메서드는 전혀 다른 메서드로 구분되기 때문이다. 상위 개념인 Super 클래스가 존재하더라도, Sub sub = new Sub() 와 같이 서브 클래스를 레퍼런스로 선언하고 서브 클..
Strategy Pattern 1 : Many 관계와 같다. 객체의 타입을 하나로 다루면서 이해 다양한 연산을 적용해야할 때, Strategy Pattern을 활용하면 적절하다. 예를 들면, Video 클래스가 있다고 가정하자. 이 클래스는 동영상 파일을 의미한다. 동영상에는 Mpeg, Avi 등 여러 포맷이 존재하고, 표현하는 방법이 모두 다르다. 따라서 MpegVideo, AviVideo 등 파생 클래스가 존재한다. 전부 다르지만 Video Interface(혹은 class)를 상속받아 캡슐화하고, 추상화하여 하나의 Video로 다룰 때 유용하다. Visitor PatternMany : Many 관계와 같다. 위에서 Video 뿐만아니라 Audio까지 다루게 된다고 가정해보자. Audio 역시 다양한..
1. 가정 - 게임에서 유닛과 색상을 모델링한다. - 유닛은 색상 정보를 가지고 있다. 2. Naive Code - Colorpublic class Color { private String name; public Color(String name) { this.name = name; } public String getName() { return this.name; } }색상정보를 저장하는 클래스이다. - Unitpublic class Unit { private Color color; private String name; public Unit(String name, Color color) { this.name = name; this.color = color; } public String getName() {..
1. 가정 - 로거를 구현한다. - 문자열을 넘기면 해당 문자열을 출력하는 로거를 작성한다. 2. Naive Code - Log4Jpublic class Log4J { public void logging(String string) { System.out.println("Log4J : " + string); } }Log4J라는 이름의 Logger클래스이다. 문자열을 받아서 콘솔에 출력하는 역할을 한다. - NaiveClientpublic class NaiveClient { public static void main(String args[]) { Log4J logger = new Log4J(); logger.logging("Log this String"); } }로거를 활용해서 문자를 로깅한다. 실행 결과는..
1. 가정 - 아톰을 만든다. - 아톰은 펀치공격이 가능하다. 2. Naive Code - Punchpublic class Punch { private final String attackType = "Punch"; public String getName() { return attackType; } }펀치 공격에 해당하는 클래스. - Atompublic class Atom { private final String robotType = "Atom"; private Punch punch; public void setPunch(Punch punch) { this.punch = punch; } public void attack() { System.out.println(robotType + " : " + punch..
1. 가정 - TV와 TV 콘센트를 만든다. - TV에는 해외 직구용 TV와, 국내용 TV가 존재한다. - 해외직구TV는 110V를 사용하며, 국내용 TV는 220V를 사용한다. 2. Naive Code - DomesticTV / OverseasTVpublic class DomesticTV { private final int acceptableVoltage = 220; public void on(int electricCurrent) { if ( this.isAcceptableVoltage(electricCurrent) ) System.out.println("Domestic TV is Turned On"); else System.out.println("Warning : Not Acceptable Volta..
1. 가정 - 사람에 대한 정보를 저장하고, 출력하는 프로그램을 작성한다. - 사람에 대한 정보는 이름, 나이, 전화번호, 키, 몸무게 등이 있다. - 모든 정보를 입력할 필요 없이, 부분적으로 입력할 수 있다. - 모든 정보는 수정될 수 있다. 2. Naive Code - Personpublic class Person { private String name; private int age; private String phoneNumber; private int height; private int weight; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public ..
1. 가정 - 비디오를 보여주는 프로그램을 만든다. - Mpeg, Avi 포맷을 지원한다. 2. Naive Code - VideoStrategypublic interface VideoStrategy { public void doVideo(); } - MpegVideoStrategypublic class MpegVideoStrategy implements VideoStrategy { @Override public void doVideo() { System.out.println(this.getClass().getSimpleName() + "# doVideo()"); } } - AviVideoStrategypublic class AviVideoStrategy implements VideoStrategy { @..