본문 바로가기

java

[테스트 코드]JUnit 1. 목적 협업을 하면서 커밋을 기다리거나 구현한 기능에 대해 실행하면서 웹페이지로 테스트를 진행하는 것이 비효율적임을 느끼게 되어 테스트코드를 이용한 단위테스트를 필수적으로 진행해야겠다고 생각했다. 2. 학습내용 given-when-then given은 테스트 실행을 준비하는 단계 when은 테스트를 진행하는 단계 then은 테스트 결과를 검증하는 단계 JUnit 애너테이션 @DisplayName : 테스트 이름을 명시 @Test : 테스트 수행 메서드 @BeforeAll : 전체테스트를 시작하기 전에 처음으로 한번만 실행한다. 데이터베이스를 연결해야 하거나 테스트 환경을 초기화할 때 사용된다. 전체 테스트 실행 주기에서 한번만 호출되어야 하기 때문에 statc으로 선언해야 한다. @BeforeEac.. 더보기
[예외처리]@ExceptionHandler,@RestControllerAdvice 1.목적 팀 프로젝트를 하면서 공지사항에 접근권한이나 잘못된 요청에대한 예외처리를 하기 위해 학습하게 되었다. 2. 학습내용 @ExceptionHandler @ControllerAdvice나 @RestControllerAdvice가 있는 클래스의 메소드에 사용된다. 매우 유연하게 에러처리를 할 수 있는 방법을 제공한다. 에러 응답을 자유롭게 다룰 수 있다. @RestControllerAdvice Spring 4.3부터 제공하는 애노테이션이다. @ExceptionHandler를 전역적으로 적용할 수 있게 해준다. @ControllerAdvice 와의 차이점은 에러 응답을 JSON으로 내려준다는 것이다. 애노테이션을 적용해 전역적으로 에러를 핸들링하는 Class를 만들어 사용한다. 400 Bad Reques.. 더보기
[자바의정석 | Chapter 07 객체지향 프로그래밍2] super, super() 1. 학습목표 super에 대해 이해할 수 있다. 2.필요 개념 문장정리 super 자손클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수이다. 상속받은 멤버와 자신의 멤버가 이름이 같을 때 super를 붙여 구별할 수 있다. static메서드에서는 사용할 수 없고 인스턴스메서드에서만 사용할 수 있다. super() 조상클래스의 생성자를 호출하는데 사용한다. Object클래스를 제외한 모든 클래스의 생성자 첫줄에 생성자.this() 또는 super()를 호출해야한다. 조상클래스의 멤버변수는 조상의 생성자에 의해 초기화되도록해야 한다. 3. 코드작성 class SuperTest2{ public static void main(String args[]) { Child c = new Ch.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 10.게임화면 디자인 게임에 필요한 노트, 판정 관련 이미지를 만들어줍니다. public void screenDraw(Graphics2D g) { g.drawImage(background, 0, 0, null); if(isMainScreen) { g.drawImage(selectedImage, 340, 100, null); g.drawImage(titleImage, 340, 100, null); } if(isGameScreen) { g.drawImage(noteRouteImage, 228, 30, null); g.drawImage(noteRouteImage, 232, 30, null); g.drawImage(noteRouteImage, 436, 30, null); g.drawImage(noteRouteImage, 540, 3.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 6.곡 선택 화면 디자인 메인화면에서 곡을 선택해서 게임을 시작하는 게임화면 디자인을 구현합니다. mp3형식의 게임곡 3곡과 각각의 곡마다 소개와 게임 2개의 이미지를 준비합니다. private ImageIcon leftButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/leftButtonEntered.png")); private ImageIcon leftButtonBasicImage = new ImageIcon(Main.class.getResource("../images/leftButtonBasic.png")); private ImageIcon rightButtonEnteredImage = new ImageIcon(Main.class.getResource(.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 5. 화면전환 시작화면에서 메인화면으로 넘어갈수 있도록 화면전환 기능을 구현합니다. 포토샵을 통해 시작화면과 비슷한 이미지의 메인화면과 버튼 이미지를 만듭니다. 버튼이미지는 마우스가 올려지면 변경되도록 명도를 조절하여 두가지씩 준비합니다. 버튼이벤트를 통해 화면전환을 구현합니다. backgrorund의 변수에 다른이미지를 넣어 화면 전환을 하도록 구현합니다. public class DynamicBeat extends JFrame { private Image screenImage; private Graphics screenGraphic; // 시작하기,종료하기 버튼이미지 변수 추가 private ImageIcon exitButtonEnteredImage = new ImageIcon(Main.class.getResourc.. 더보기
[자바의정석 | Chapter 07 객체지향 프로그래밍2] 오버라이딩 1. 학습목표 오버라이딩의 의미를 이해할 수 있다. 2.필요 개념 문장정리 오버라이딩 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해야 한다. 접근제어자는 조상클래스의 메서드보다 좁은범위로 변경 할 수 없다. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 인스턴스메서드를 static메서드로 또는 그 반대로 변경할 수 없다. 3. 코드작성 class Point { int x; int y; String getLocation(){ return "x : " + x + ", y :" + y; } } class Point3D extends Point { int z; Str.. 더보기
[내가 만든 프로젝트 코드 분석 | 리듬게임 만들기] 4. 메뉴 바 구현 포토샵을 사용해서 메뉴바를 해상도에 맞게 만들어줍니다. 메뉴바에 종료버튼을 위치하고 종료기능을 구현합니다. 메뉴바를 클릭하여 이동시킬 수 있는 드래그 기능을 구현합니다. 버튼 클릭시 버튼효과음을 적용합니다. public class DynamicBeat extends JFrame { private Image screenImage; private Graphics screenGraphic; private ImageIcon exitButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/exitButtonEntered.png")); // Entered 변수 private ImageIcon exitButtonBasicImage = new Image.. 더보기