Java 154

메이븐 설치(Maven) 및 환경변수 설정

지금부터 Java 8, Eclipse, Tomcat 9, Maven을 순서대로 설치할 것이다. 나는 모두 C:\dev 폴더 안에 설치해서 관리하기 편하게 만드려고 한다. 앞으로 진행할 포스팅 순서는 아래와 같다. JDK 8 설치 이클립스 설치 톰캣 설치 메이븐 설치 (현재 포스팅) 1. Maven 설치 메이븐 홈페이지에 접속한 후 Files의Binary zip archive를 다운받는다. 파일을C:\dev에서 압축 해제한다. 2. Maven 설치 후 기본 설정 1) 환경변수 설정 설치가 끝나면 환경변수를 설정해야 한다. '윈도우키+R'을 눌러서 나타난 실행창에 sysdm.cpl 을 입력하면 아래 창이 뜬다. 고급 탭에서 '환경변수'를 클릭한다. 아래와 같이 'Path'를 선택한 후 '편집' 버튼을 클릭한..

Java 2021.04.09

[ java ] final 사용하기.

자바에서 final 사용하기. 자바로 프로젝트를 진행할 때 여러 파일에서 공유해야 하는 상수 값은 한 파일에 모아 아래와 같이 사용 추천. public static final package finalex; public class Define { public static final int NIM = 1; public static final int MAX = 99999; public static final int ENG = 1001; public static final int MATH = 2001; public static final double PI = 3.14; public static final String GOOD\_MORNING = "Good Morning"; }

Java 2021.02.09

[ java ] 템플릿 메서드(template method)

템플릿 메서드(template method) 싱글톤 패턴과 같은 디자인 패턴 중 하나이다. 모든 객체 지향 프로그램에서 사용하는 구현 방법이다. 따라서 이 방법은 자바에서 뿐만 아니라 C, C++, C#에서도 동일하게 적용된다. package template; public abstract class Car { public abstract void drive(); public abstract void stop(); public void startCar() { System.out.println("시동을 켭니다."); } public void turnOff() { System.out.println("시동을 끕니다."); } // 템플릿 메서드 final public void run() { startCar();..

Java 2021.02.09

[ java ] 추상 클래스의 형 변환

package beginJava; public class ComputerTest { public static void main(String[] args) { Computer c1 = new Computer(); // Computer 추상 클래스로 오류 Computer c2 = new DeskTop(); Computer c3 = new NoteBook(); // NoteBook 추상 클래스로 오류 Computer c4 = new MyNoteBook(); } } 추상 클래스는 모두 구현되지 않은 추상 메서드를 가지고 있기 때문에 인스턴스를 생성할 수 없다. 추상 클래스의 형 변환 가능 하지만 추상 클래스도 형 변환이 가능하다. 위와 같이 상위 클래스 Computer를 상속 받았으므로 Computer 형으로 ..

Java 2021.02.09

[ java ] 추상 클래스(abstract class) 2

추상 메서드를 모두 구현하지 않고 1개만 구현한 추상 클래스 package beginJava; public abstract class NoteBook extends Computer { @Override public void display() { System.out.println("DeskTop display()"); } } 상속 받은 추상 클래스의 추상 메서드를 모두 구현하지 않으면 하위 클래스도 추상 클래스가 된다. 추상 클래스가 된 하위 클래스에서는 구현되지 않은 나머지 추상 메서드에 대해서 구현하면 아래와 같이 추상 클래스가 되지 않는다. package beginJava; public class MyNoteBook extends NoteBook { @Override public void typing..

Java 2021.02.09

[ java ] 추상클래스( abstract class )

int add(int x, int y) { return x + y; } {} 안의 내용이 함수 몸체(구현부: implementation) 추상 함수 : abstract function 아래와 같이 구현부가 없는 함수 abstract int add(int x, int y); 자바에서 추상 메서드는 abstract 예약어를 사용하여 선언만 하는 메서드이다. 추상 메서드 추상 메서드가 있는 클래스는 추상 클래스여야 한다. 그러지 않으면 오류 발생. 추상 클래스의 추상 메서드 구현부가 없는 이유 하위 클래스에 따라 구현이 달라질 수 있다. 추상 메서드의 구현에 대한 책임을 상속받는 클래스에 위임한다. 하위 클래스마다 다르게 구현할 메서드는 추상 메서드로 선언해두는 것이다. 추상 클래스를 상속받는 클래스에서 해야..

Java 2021.02.07

[ java ] 다운캐스팅( down casting)

Animal ani = new Human(); 생성된 인스턴스 Human은 Animal 형이다. 이렇게 Animal형으로 형 변환이 이루어진 경우에는 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. Human 클래스에서 더 많은 메서드가 구현되어 있고 다양한 멤버 변수가 있다고해도 자료형이 Animal형인 상태에서는 사용할 수 없다. 필요에 따라 다시 원래 인스턴스의 자료형(Human)으로 되돌아가야 하는 경우가 있다.이렇게 상위 클래스 형으로 형 변환되었던 하위 클래스를 다시 원래 자료형으로 형 변환하는 것을 다운캐스팅(down casting)이라고 한다.

Java 2021.02.07

[ java ] sts 설치 (version: sts-4.9.0)

https://spring.io/tools 최신버전부터는 jdk 버전 11이상 설치, 사용이 가능하다고 한다. 기존에 1.8을 사용했어서 sts만 새로 설치하고 실행을 시키니 오류 발생. jdk 14 설치 https://www.oracle.com/kr/java/technologies/javase/jdk14-archive-downloads.html C:\Program Files\Java\jdk-14.0.2\bin Program Files 폴더 안에 Java 폴더를 만들고 그 안에 jdk 폴더를 붙여넣기. 고급 시스템 설정 메뉴에서 환경변수를 아래와 같이 수정해준다. '새로만들기'로 위와 같이 변수 이름과 변수 값을 입력한다. 변수 값: 설치한 jdk의 bin폴더 내에서의 위치. %JAVA_H..

Java 2021.02.07

[ java ] Duration.ofSeconds, Duration.ofMillis 사용법

Test를 할 때 주로 사용 Duration.ofSeconds() Duration.ofMillis() 테스트를 할 때, 해당 메서드의 실행 시간을 확인하는 역할을 한다. 예시 @Test @DisplayName("스터디 시작") void create_new_study() { assertTimeout(Duration.ofMillis(100), () -> { new Study(10); Thread.sleep(300); }); } 해당 메서드의 실행종료까지 소요시간을 확인해서 0.100s를 초과하는 경우에 테스트는 실패한다. 메서드 실행 시간을 확인하기 위해서 Thread.sleep을 사용하여 테스트 실패를 유도했다. 위의 코드는 메서드가 모두 실행이 된 후(300 millis를 잠재훈 후)까지 시간을 확인해서..

Java 2021.01.05

[ java ] 자바에서 SHA256으로 hashing 하는 방법

// SHA-256으로 해싱하는 메소드 public static String sha256(String msg) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(msg.getBytes()); return bytesToHex(md.digest()); } // 바이트를 헥스값으로 변환한다 public static String bytesToHex(byte[] bytes) { StringBuilder builder = new StringBuilder(); for (byte b: bytes) { builder.append(String.format("%02x", b)); } return..

Java 2020.12.30

[ java ] TDD; 테스트 주도 개발 간단한 설명, JUnit

TDD ( Test Driven Development) 테스트 주도 개발 목표 주도 개발 사용자 중심 개발 인터페이스 중심 개발 TDD 사용 이유 ( 올바르게 작동하는 깔끔한 코드를 작성하기 위함 ) 목표 달성 올바르게 작동하는 코드 작성 깔끔한 코드 작성 How to 올바르게 작동하는 코드를 만든다. 깔끔하게 작동하는 코드로 Refactoring 한다. 작동하는 것은 그대로 두고 내부 구현, 코드만 바꾸는 것을 의미한다. 올바르게 작동한다는 것을 보장할 수 있는 Test Code가 필요하다. Test Code를 언제 작성할까? Test First : Test Code를 제일 먼저 작성하자는 것이 '테스트 주도 개발'의 주요 핵심이다. 간단한 3가지 과정을 거쳐서 실행된다. TDD 사이클이..

Java 2020.12.26
728x90
반응형
LIST