전체 글
-
[Java] Annotation이란 무엇인가?Dahum Library/Java 2020. 3. 23. 15:17
어노테이션은 주석이다? 어노테이션은 코드의 메타데이터를 표현하는 기능이라는 말이 있다. 그 말대로라면 어노테이션은 주석(comment) 이다. 코드는 기계어로 컴파일되어 컴퓨팅 리소스를 동원하게 만든다. 반면 주석은 그 주석을 읽는이에게 어떠한 정보를 전달하는데에 목적이 있다. 흔히 우리가 "//", "/* */"과 같은 형태로 작성하는 주석은 사람이 읽는 주석이다. 이것은 소스코드가 컴파일 되는데에 아무런 영향을 미치지 않는다. 그런데 어노테이션은 사람만을 위한게 아니다. 위의 문단에서 굳이 "읽는이"라고 표현한 이유가 있는데, 어노테이션은 사람에게도 코드의 메타데이터에 대한 정보를 제공하지만 컴파일러, 혹은 다른 코드에게도 그러한 역할을 한다. 그러므로 코드가 동작하는데 아무런 영향을 미치지 않는 주..
-
-
-
[디자인 패턴] 템플릿 메서드 패턴 (Template method pattern)Dahum Library/Java 2020. 3. 15. 16:16
서블릿을 공부하다가 예전에 이펙티브 자바에서 본 기억이 나서 한번 정리해보려고 한다. 템플릿 메서드 패턴 [템플릿 메서드] 라는 이름에서 의미를 생각해보면 템플릿 역할을 하는 메서드라고 유추해볼 수 있다. 템플릿이라고 하면 '정해진 틀' 정도로 생각하면 될 것 같다. PPT 템플릿을 생각하면 쉽다. 미리 일관된 디자인이 적용되어있고, 필요한 부분을 수정하거나 추가해가면서 작성할 수 있도록 만들어 놓은게 PPT 템플릿이라 할 수 있겠다. 템플릿 메서드도 마찬가지다. 작업을 위한 기본적인(공통적인) 동작들이 미리 정의되어있고, 필요한(다른)부분은 상황에 따라 바꿔가며 사용할 수 있는 메서드가 템플릿 메서드이다. class DailyLife { .... public abstract void goSchedule..
-
-
[Spring Framework] Spring이란? (Spring은 웹 프레임워크가 아니다)Dahum Library/Spring 2020. 3. 14. 22:12
Spring이 뭘까? 구글에 Spring이나 Spring framework를 검색해서 나오는 게시물의 90%는 웹 개발에 관한 이야기이다. 얼핏보면 Spring이란건 결국 웹개발을 위한 프레임워크처럼 보인다. 나 또한 Spring Boot를 사용하여 웹 서비스를 개발하면서 처음 Spring을 접했고 역시나 Spring이란게 웹 프레임워크인줄 알았다. 그리고 내 생각에 Spring이 가장 많이 쓰이는 곳은 웹 개발이 맞는것 같다. 하지만 Spring은 절대, 웹 프레임워크가 아니다 Wiki백과에서 Spring을 보면 자바 "자바 플랫폼을 위한 경량급 오픈 소스 애플리케이션 프레임워크" 라고 되어있다. 이 말이 맞다. Spring은 자바로 개발하는 모든 어플리케이션에 사용할 수 있는 프레임워크이다. 여기서 ..
-
-
HTTP 제대로 알기Dahum Library/Web & Network 2020. 3. 13. 10:26
Prerequisite Protocol 인터넷을 이야기하면서 프로토콜을 빼놓을 수 없다. 프로토콜이란 단어의 뜻은 규약, 협약이란 뜻인데 컴퓨터에서도 똑같은 의미로 사용된다. 수십억의 디바이스(노드)들이 거대한 연결망에 그물처럼 연결되어있는게 인터넷이라는 네트워크이다. 사람들도 나라마다, 지역마다 언어가 다르듯 기기들도 정보를 전달하는 방식이 다를 수 있는데, '이 인터넷이라는 네트워크 안에서는 모두 같은 형식으로 대화하자' 라는 생각으로 말하자면 표준어를 만들어 놓은게 인터넷 프로토콜이다. 나는 이 프로토콜을 구체적으로 이해하는게 어려웠는데, 그냥 '표준'이란 말로는 뭔가 구체적으로 와닿지 않았다. 그치만 조금 더 구체적으로 그 실체를 알아보면 정말 별 것 아닌데, 결국은 '나는 XX프로토콜 메세지 입..