CSE/JAVA(21)
-
TDD (Test-driven Development)
1. TDD란? TDD는 Test-driven Development의 약자로, '테스트 주도 개발'이다. TDD를 알아보기 전에 TDD의 Test가 무슨 뜻인지를 알아보자 (1) Testing이란? Testing이란 제품 또는 서비스의 품질을 확인하는 과정으로 개발 분야에서는 소프트웨어의 버그를 찾는 과정을 말한다. 즉, 제품이 원하는대로, 예상하는대로 동작하는지 확인하는 과정이다. 이 때, 제품은 함수, 특정한 기능, Api 스펙 등을 말한다. 특정한 기능을 수행하는 코드가 있다면 그에 해당하는 테스트 코드를 작성한다. 그리고 해당 테스트 코드를 실행해서 모든 테스트가 패스되는지 확인을 하고, 테스트가 실패할 시, 어떤 부분이 잘못되었는지 확인하고 수정하는 과정을 거쳐야한다. (2) TDD란? 위에서 ..
2022.03.25 -
[자바 객체 지향] 객체 지향의 4대 특성 - 추상화
1. 추상? 추상화? 객체 지향의 추상화의 의미를 알아보기 위해 먼저 '추상'과 '추상화'의 사전적 정의를 살펴보자 네이버의 국어 사전에 '추상'과 '추상화'를 검색하면 다음과 같은 결과를 얻을 수 있다. 추상 : 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용 추상화 : 추상적인 것으로 됨. 또는 그렇게 만듦. 즉, 추상화는 '사물/개념에서 공통되는 속성을 추출하고, 그렇게 만들다' 라는 뜻이다. 이 개념을 객체지향에 적용해보자 2. 객체 지향에서의 추상화 객체 지향에서 '사물/개념'에 대응 되는 것은 객체이고, '공통되는 속성'에 대응되는 것은 클래스라고 할 수 있다. 즉, 객체에서 공통되는 속성을 추출해서 이를 클래스로 만드는 것이 객체 지향에서의 추상화이다. 그리..
2022.03.24 -
[자바 객체 지향] 객체 지향의 4대 특성과 클래스&객체
1. 객체 지향은 인간 지향이다 (1) 기존의 구조적 프로그래밍 언어 : Divide and Conquer (D&C) - Divide and Conquer은 프로그램의 동작/기능들을 논리적인 단위인 함수로 나누어 블록화해서 작성하는 것이다. => 천 리 길도 한 걸음부터! - 기존의 구조적 프로그래밍 언어에서 가장 중요한 것은 함수였다. - 이 때, 함수의 목적은 중복을 제거하고 논리를 분할하는 것이다. (2) 객체 지향 - 우리가 실생활에서 사물을 인지하는 방식대로 프로그래밍 할 수 있지 않을까?라는 생각에서 시작되었다. => 따라서, 객체 지향은 직관적이다. 2. 클래스랑 객체가 붕어빵틀과 붕어빵이라고? 우리는 Java 기본서를 볼 때, 클래스가 붕어빵틀에, 객체가 붕어빵에 비유되는 것을 흔히 볼 수..
2022.03.24 -
[Java] 데이터 타입, String 특징
Java의 데이터 타입에 대해 글을 쓴 줄 알았더니, Java script의 데이터 타입에 대해서 쓴 글이랑 착각했었다. 그래서 복습 하는 겸, Java의 데이터 타입에 대해 알아보겠다. 1. Java의 데이터 타입 - Java의 데이터 타입은 크게 두 가지, "기본 타입(primitive type)", "참조 타입(reference type)"으로 나뉘어진다. 데이터 타입 기본 타입(primitive type) 참조 타입(reference type) 종류 정수 타입, 실수 타입, 논리 타입 배열 타입, 열거 타입, 클래스, 인터페이스 2. 기본 타입 (Primitive Type) - 기본 타입을 이용해서 선언된 변수는 실제 값을 변수 안에 저장한다. - 위의 표 처럼 기본 타입은 다시 정수 타입, 실수..
2022.03.23 -
Varargs : 가변 인자
공식 문서 : https://docs.oracle.com/javase/8/docs/technotes/guides/language/varargs.html Varargs Varargs In past releases, a method that took an arbitrary number of values required you to create an array and put the values into the array prior to invoking the method. For example, here is how one used the MessageFormat class to format a message: Object docs.oracle.com 스프링 강의를 듣다가 Object... objects 이런..
2022.01.21 -
[자바 객체 지향] 스프링이 사랑한 디자인 패턴 2
1. 템플릿 메서드 패턴 (Template Method Pattern) public abstract class Animal { //템플릿 메서드 public void playWithOwner(){ System.out.println("귀염둥이 이리온..."); play(); runSomething(); System.out.println("잘했어"); } //추상 메서드 abstract void play(); // Hook(갈고리) 메서드 void runSomething(){ System.out.println("꼬리 살랑 살랑~"); } } - 상위 클래스인 Animal에는 템플릿을 제공하는 playWithOwner() 메서드와 하위 클래스에게 구현을 강제하는 play() 추상 메서드, 하위 클래스가 선택적..
2021.09.06