Study 5

스프링 부트의 테스트 코드(부제 : JUnit), 책: 스프링 부트와 AWS로 혼자 구현하는 웹 서비스

결국 테스트 코드를 작성하는 이유는, 기능이 잘 동작하는지 확인을 하기 위함이다. 테스트 코드는 내가 작성한 로직이나 기능들을 테스트 코드를 통해 잘 동작하는지 확인해보는 것이다. 테스트 코드 작성 전 개발 방식은 보통 1. 코드의 작성 2. 프로그램 실행 3. 테스트 도구를 통해 HTTP 요청 (Postman) = 브라우저를 통해 서버에 접속하고 테스트 대상 메소드를 동작시키는 요청 4. 요청 결과를 System.out.println()을 통해 눈으로 확인. 5. 결과가 이상하면 프로그램 실행을 중지하고 코드를 수정 이런 방식으로 많이 진행 되었는데, 테스트 코드를 작성하게 되면, 1. 코드를 작성 2. 테스트 코드의 작성 후 실행 3. 결과에 따른 동작(코드를 수정한다, 정상 작동하니 다음 로직을 개..

스프링/백엔드 2022.02.10

추상 클래스(abstract class)와 인터페이스(interface)

1. 추상 클래스(abstract class) 추상 클래스는 클래스의 공통된 부분을 뽑아 별도의 클래스인 추상 클래스로 만들어놓고 이것을 상속해서 사용한다. 앞서 클래스를 설계도에 비유했는데, 추상 클래스는 미완성 설계도에 비유가 가능하다. 미완성 클래스로 완성된 제품을 만들 수 없듯이 추상 클래스로 인스턴스는 생성할 수 없다. 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상 클래스의 특징은 다음과 같다. 1. 멤버 변수를 가진다. 2. 추상클래스를 상속하기 위해선 상속 키워드인 extends를 이용한다 3. 추상 메서드를 가지며 상속한 클래스에서 반드시 구현해야 한다. 4. 일반 메서드를 가질 수 있다. 5. 일반 클래스와 마찬가지로 생성자도 있다. 추상 클래스 자체로는 클래스로서의 역할을 ..

Language/Java 2022.01.23

내부 클래스(inner class)

1. 내부클래스(inner class) 내부 클래스는 클래스 내에 선언된 클래스로 두 클래스가 서로 가까운 관계가 있을 때 내부 클래스를 사용한다. 이로인해 멤버에 쉽게 접근할 수 있으며, 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있다. (크게 중요하지 않음.) 1) 내부 클래스의 예시 class A{ //외부 클래스 class B{ // 내부 클래스 } } 2) 내부 클래스의 선언 class Outer{ int iv = 0; // 인스턴스 변수 static int cv = 0; // 클래스 변수 void myMethod(){ int iv = 0; //지역 변수 } } 같은 위치에 선언뿐만 아니라 멤버 변수와 같은 성질을 갖는다. 따라서 내부 클래스가 외부 클래스의 멤버와 같이..

Language/Java 2022.01.22

상속(Inheritance)

상속은 기존의 클래스를 재사용해 새로운 클래스를 작성하는 것인데, 적은 양의 코드로 새로운 클래스의 코드를 작성할 수 있고 코드를 공통적으로 관리해 코드의 추가 및 변경이 매우 용이하다. 상속의 장점 1. 코드의 재사용성 증가 2. 중복된 코드의 제거로 인한 생산성의 향상 및 유지보수가 편해짐. 1) 상속의 예시 class Child extends Parent{ // 내용 } 상속받고자 하는 클래스의 이름 뒤에 extends와 상속 받을 클래스 이름을 적는다. 상속은 부모에서 선언과 정의를 모두 하며 자식은 메서드와 변수를 그대로 사용이 가능해 오버라이딩을 따로 할 필요가 없다. (단일상속 = 하나의 클래스에 하나만 상속이 가능하다) 상속을 해주는 클래스를 '조상 클래스' 상속을 받는 클래스를 '자손 클..

Language/Java 2022.01.21

기본적인 자바코드의 이해 (변수와 메인, 메인메서드, 자료형과 연산자)

Hello world를 이용한 코드 분석(기본 코드의 분석) public class Java{ public static void main(String [] args){ System.out.println("Hello world") }; } 접근제한자 클래스선언 클래스이름{ 접근 제한자 static 반환형 메서드이름(메인함수)(파라미터){ 구현할 코드 } } public class Java{ public static void main(문자열 배열 변수명){ 구현할 코드 }; } 가장 기본적인 Java의 Hello world 출력을 위한 코드로 코드를 분석해보면 다음 위와 같다. // 1) 접근 제한자 -> public, private, protected, default -> 클래스나 메서드에 접근할 수 있는..

Language/Java 2022.01.16