본문 바로가기
인터페이스를 사용하는 이유 서론 자바로 애플리케이션을 개발할때, 인터페이스를 사용한다. 일반적으로 인터페이스에 대해서 설명을 하라고 하면 `기능에 대한 명세 집합` 이라고 표현하는 경우가 많다. 기능에 대한 명세를 모으기 위해서만 인터페이스를 사용하는가? 에 대해서 의문이 들었다. 인터페이스가 기능에 대한 명세 집합이라는 목적만 가지면 오히려 코드의 복잡성만 올라가는게 아닐까 생각이 든다. 인터페이스를 왜 사용해야하고 어떤 효과가 있는지 좀 더 깊이 알아보기 위해서 이 글을 작성하였다. 인터페이스 (Interface) ? 인터페이스의 본질을 알아보기전에 간단하게 OOP에 대해서 다시 정리하고 넘어가자. OOP는 변경에 유연한 설계기법이다. OOP에서 자주 나오는 용어에는 다형성이 있다. `다형성`은 상속을 통해 기능을 확장하거나 .. 2020. 5. 8.
java - static 변수 서론 싱글톤 패턴, 정적 팩토리 메서드 패턴등의 디자인 패턴에서 사용하는 static variable을 알아보자. static(정적), 뭐가 정적이라는걸까? 자바에서는 static 키워드를 사용해서 변수나 메서드를 선언할 수 있다. static을 붙인 변수와 붙이지 않은 변수의 차이점은 뭘까? static 이라는 영어단어를 한글로 해석하면 정적으로 해석할 수 있다. 정적이라는게 동적이지 않다는것인데, 뭐가 정적이라는걸까? 기능을 통해서 유추해보자. 아래와 같이 Test라는 클래스를 만들고 main 메서드를 static으로 선언하였다. JVM에서는 static main메서드를 보고 코드를 실행하게 된다. class Test { public static void main(String [] args) { Sy.. 2020. 5. 7.
Java에서 정수를 표현할때 왜 Integer를 많이 사용할까? 서론 Java의 데이터타입은 크게 `기본형 자료`와 `참조형 자료`로 구분할 수 있다. 먼저 기본형 자료형을 알아보자. Java의 자료형을 정리하는 차원에서 책을 보다가 byte와 short 자료형이 있는데 대부분의 정수형을 표현할때 Intege를 사용하는지 궁금증이 생겼다. 기본형 자료 논리형(boolean) Java 에서는 논리형 자료로 `boolean`을 제공한다. true와 false를 나타낸다. 다른 기본형과의 연산은 불가능한 특징이 있다. 크기는 1byte이다. 문자형(char) 컴퓨터는 0,1만 알고 있는 기계이다. 따라서 문자형도 결국에는 0,1로 저장이 된다. 내부적으로는 유니코드 / 아스키코드 로 맵핑시켜서 저장을 시킨다. 따라서 실수형이나 정수형과 연산이 가능한 특징이 있다. 크기는 .. 2020. 5. 7.
스프링 웹 프로그래밍 (2) Spring MVC Spring MVC는 스프링 프레임워크를 구성하는 모듈이다. 정싱 명칭은 Spring Web MVC이다. 서블릿 API를 기반으로 작성된 웹 프레임워크이고 `프론트 컨트롤러 패턴`과 `MVC 아키텍처 패턴`을 사용한다. 견고한 웹 애플리케이션을 만드는데 도움이 되는 풍부한 기능을 제공하고 `annotation`과 `reflection API`를 적극 사용한다. 위의 그림처럼 프론트 컨트롤러인 `DispatcherServlet`을 중심으로 동작하고 MVC(Model-View-Controller)가 협력해서 웹 요청과 응답을 처리하는 방식이다. HTTP요청이 들어오면 DispatcherServlet으로 전달을 한다. DispatcherServlet은 적절한 컨트롤러를 찾아서 요청을 위임하.. 2020. 2. 22.