git : https://github.com/os94/java-coordinate/tree/enum-customException 기본적으로 Figure를 상속받는 Line, Triangle, Rectangle 클래스가 있다. 그리고 List points를 주면 이 중 어느것을 생성할지 mapping하는 역할의 팩토리가 있다. 팩토리내에선 if문을 없애고자 map을 사용하였다. 이 과정에서 사용된 LineCreator, TriangleCreator, RectangleCreator를 상속시키는 FigureCreator 인터페이스가 존재하며, 이것은 단순히 create() 메소드 뼈대만 갖는다. 이렇게 구현한 1차적인 코드는 다음과 같다. (자세한 코드는 git 커밋기록을 들여다 볼 것) 아래의 LineCre..
Apache Library - StringUtils Class StringUtils (Apache Commons Lang 3.9 API) isBlank(), isEmpty() 외에도 참 많은 편리한 메소드들이 존재한다. 숙지하고 유용하게 사용하자 ! dependency 추가 compile 'org.apache.commons:commons-lang3:3.0' import (보통 auto-import 됨) import org.apache.commons.lang3.StringUtils; isBlank() vs isEmpty() 추가로, java.lang.String의 isBlank(), isEmpty()는 null값을 처리하지 못한다. 참고할만한 링크 tistory/Java-StringUtils
DTO vs VO (Data Transfer Object / Value Object) 용도는 비슷하나, 간단히 DTO는 variable / VO는 value 같은 느낌 또다른 표현으로는, DTO는 Instance / VO는 Literal 같은 느낌 (느낌만!) DTOVOData Transfer ObjectValue Object프로세스간 데이터를 전달하는 객체간단한 독립체(Entity)를 의미하는 작은 객체사실상 용도는 둘다 도메인단위의 데이터를 저장하는 비슷한 용도상태 변경 가능Read-Only : 한번 값을 초기화하면 변경불가Business logic까지 담아서 사용하기도.equals()로 비교할때, 모든 값을 비교해야한다ex) 보통 "CarDto"와 같이 클래스이름에 접미사로 용도를 나타낸다 최대한 ..
TDD와 단위테스트는 다르다. 단위테스트로 먼저 연습하고 TDD에 점차 익숙해지자. 추천서적 Unit Test (단위 테스트) ■ Production code ■ Test code => JUnit Annotation을 활용 JUnit 5.x import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class CalculatorTest { Calculator cal; @BeforeEach public void setUp() { cal = ..
package 관련된 클래스들을 모아서 관리할 수 있도록 한다. 한 곳에서 수백, 수천 개의 클래스를 찾는 수고를 덜어준다. 배포할 때 관련된 소스 코드들을 묶어서 배포하고 재사용할 수 있도록 한다. 각 프로젝트나 소프트웨어 간의 소스 코드 충돌을 방지한다. ■ Package Convention 일반적으로 패키지명은 회사 도메인명을 사용한다 모든 패키지 이름은 소문자 패키지명이 java와 javax로 시작해선 안된다. 이 둘은 JDK에서 독점적으로 사용중 보통 src/main/java/.. , src/test/java/.. 형태 ■ import 모든 클래스앞에 패키지명을 사용하는 것은 비효율적. java.util.Scanner sc = new java.util.Scanner(System.in); impo..
public class Calculator { public static int plus(int num1, int num2) { return num1 + num2; } public static int minus(int num1, int num2) { return num1- num2; } public static int multiply(int num1, int num2) { return num1 * num2; } public static int divide(int num1, int num2) { return num1 / num2; } }// public class StringCalculator private int map(int num1, int num2, String operator) { if (opera..
What Is a Main Class in Java? 요약 Java와 main의 기본 특성 : main()은 Java Program의 entry point로 어디에서나 실행될수있다. 어디든(any class that is part of app.) 위치할수있고. main()의 기능은, just start action - not actually perform it. Generally, the main() method parses any command line arguments, does some setup or checking, and then initializes one or more objects that continue the work of the program. main이 다른 클래스와 합쳐져야한다 ..
public class test { public static void main(String args[]) { //System.out.println("test"); Thread1 t1 = new Thread1(); Thread2 t2 = new Thread2(); t1.start(); t2.start(); try { t1.sleep(2000); } catch (InterruptedException e) {} System.out.print(""); } } class Thread1 extends Thread { public void run() { for(int i=0 ;i
- Total
- Today
- Yesterday
- dfs
- Android
- 회고
- FRAGMENT
- 우아한 테크코스
- queue
- Algorithm
- Android Studio
- mysql
- brute-force
- Vo
- webhacking.kr
- JPA
- Stack
- bfs
- Data Structure
- javascript
- 개발자
- git
- reversing
- socket
- OneToMany
- 리버싱
- 프로그래머스
- graph
- 해외여행
- sort
- Java
- 웹해킹
- C
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |