전체 글 70

[Spring] Validation은 어떻게 확인할까?

목표 : 스프링에서 Validation을 확인할 수 있다. Validator Spring은 Validator라는 Interface를 통해, Validation을 제공하고 있다. public class Person { private String name; private int age; // the usual getters and setters... } 위와 같은 클래스가 존재한다고 하자. 그리고, 위 Person 클래스의 필드에 대해, validation을 제공하는 클래스를 만들어볼 것이다. public class PersonValidator implements Validator { /** * This Validator validates only Person instances */ public boolea..

Framework/Spring 2022.08.12

[Spring] Resource는 어떻게 처리할까?

목표 : 스프링에서 Resource 처리를 구현할 수 있다. Resource IoC Container에 대한 챕터를 마무리하고, Resource 챕터를 확인해보자. 먼저 Resource가 무엇인지 이해가 필요할 것 같다. intellij로 스프링 프로젝트를 시작하면, resources 폴더가 생기게 된다. Spring에서 java 뿐 아니라, 외부의 파일들을 읽어야 하는 경우가 생긴다. (앞서 배웠던 properties도 외부 파일 중 하나다.) 이런 외부 파일들을 읽어드리거나, URL을 통해 가져와서 프로그래밍에 활용을 하는데, Spring에서는 Resource라는 Interface를 통해, 추상화를 해주었다. Spring이 없으면, 어떻게 할 수 있었을까? public static void main(..

Framework/Spring 2022.08.11

[Spring] 환경설정은 어떻게 할 수 있을까?

목표 : 스프링에서 Environment 설정을 할 수 있다. 이번에 진행하고자 하는 사항은 Environment 설정이다. 조금 더 구체적으로 Environment Abstraction이며, 그 위치는 다음과 같다. Environment Interface Environment Abstraction이라는 단어들로 알 수 있듯, 환경에 대한 추상화, 즉, Spring에서는 Environment Interface를 제공한다. 주로, Environment Interface는 profiles 나 properties 처럼, 프로그램의 환경 변수 그리고, Applcation의 프로필을 관리할 때 사용하게 된다. 다음 Environment Interface 문서를 보도록 하자. 모든 것들의 Super Interfac..

Framework/Spring 2022.08.10

자바스크립트 기초부터 모던 자바스크립트까지 - this편

목표 : 자바스크립트의 this를 사용할 수 있다. 우리가 객체를 공부할 때 크게 2가지로 나누어진다는 것을 알았다. 프로퍼티 : 객체의 상태를 나타내는 값(Data) 메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(Behavior) 위 두가지를 하나의 논리적인 단위로 묶은 복합적인 자료구조가 객체이다. 이 때, 메서드에서는 자신이 속한 객체의 상태(프로퍼티)를 알 수 있어야 한다. 그 말은, 자신이 속한 곳이 어디인지 지칭할 수 있어야 한다는 말이며, 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 한다는 말로 귀결된다. 그 역할을 this 가 하고 있다. this 키워드 this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수다. 주의해야 할 점은 ..

[Spring] Classpath와 Component가 뭘까?

목표 : 스프링의 Classpath와 Component를 설명할 수 있다. 현재 진행하고 있는 문서의 위치는 다음과 같다. 조금 생소하다면 생소하고, 많이 봤으면서도 설명하기 어려웠던 개념이 나오기에, 잘 정리하도록 해보자. Classpath 먼저, Classpath가 무엇인지 부터 알도록 하자. java는 빌드 후에 실행파일이 나오게 된다. (javac 로 컴파일 이후에 Java Byte Code인(JVM이 이해할 수 있는 언어) .class 파일이 나오는 것 정도는 알아야 한다) 즉, Classpath는 이 컴파일된 파일의 경로를 가리키게 된다. 우리가 흔히, Spring을 빌드하고 나면, target 폴더에 결과물이 남는데, 이 때 classes 폴더가 바로 해당 파일의 경로가 될 것이다. Clas..

Framework/Spring 2022.08.02

[Spring] Annotation Configuration은 어떻게 할까?

목표 : Spring의 Anntation 설정을 할 수 있다. 이번엔 계속 XML에서 설정해온 Configuration 정보들을 Annotation으로 어떻게 할 수 있을지 알아볼 예정이다. 해당 링크를 중심으로 하나씩 알아가 보도록 하자. Annotation-based Container Configuration 먼저 Annotation이 XML보다 Spring configuration하는 것에 있어서 더 좋은가? 에 대한 질문으로 시작한다. 답은 역시나 "상황에 따라 다르다" 이다. XML 방식은 소스 코드 외, XML만 보고도 설정을 알 수 있다. 즉, 설정과 소스 코드의 분리가 가능하다. 그러나, 프로젝트가 커질수록 XML 관리가 복잡해지기 시작한다. Annotation은 더 짧고 간결한 구성이 가..

Framework/Spring 2022.08.01

[Spring] Bean의 LifeCycle는 어떻게 될까?

목표 : Spring에서 Bean의 LifeCycle에 대해 설명할 수 있다. Bean에도 LifeCycle이 있을 것이고, 그에 따라 여러 설정값들도 있을 것이다. 그에 대해 알아보면서, 결국 서블릿 컨테이너를 통해 서블릿이 관리되고, 하나의 서블릿에서 Application Context가 관리하는 Bean들이 실행되는 전체적인 관점도 알아보도록 하자. Customizing the Nature of a Bean 계속 참고하여 보던 문서의 제목이며, Bean의 성질이 어떻게 되는지 보고, 수정할 수 있는 방향을 알아보자. 그럼 LifeCycle에 대해 알아보자. LifeCycle Spring에서는 객체를 다루므로, 객체를 만들거나 객체를 없애는 행위를 할 수 있다. 객체를 만들 때는 new로 객체를 만드..

Framework/Spring 2022.07.31

자바스크립트 기초부터 모던 자바스크립트까지 - 프로토타입편

목표 : 자바스크립트의 프로토타입을 설명할 수 있다. 앞서 계속해서 나오던 내용이 프로토타입이다. __proto__ 접근자 프로퍼티나, prototype 프로퍼티를 다루기도 했고, 이제 프로토타입에 대해 정확히 알아가볼 시간이다. 자바스크립트는 어떤 언어인가? 자바스크립트는 멀티 패러다임 언어다. 다시말해, 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다. 다시 보자. 자바스크립트는 프로토타입을 기반으로 한 객체 지향 프로그래밍 언어다. 자바스크립트는 객체 기반의 프로그래밍 언어로 자바스크립트를 이루고 있는 거의 모든 것이 객체다. 결국 다시 객체로 돌아온다. 이제 이 객체로 상속과 프로토타입에 대해 알아보자. 상속과 프로토타입 상속은 어떤 객체의 프로퍼티..

[Spring] Bean Scope 가 뭘까?

목표 : Bean Scope에 대해 설명할 수 있다. Bean Scope라는 것은 Bean의 범위인데, 아마 바로는 이해가 쉽지 않을 것이다. Bean Scope는 객체를 만들 때, 컨테이너가 이 객체를 한번만 호출하는지, 아니면 호출 할 때마다 여러번 만드는지에 대한 내용이다. 그래서 문서 상에 여러 Scope가 있는 걸 볼 수 있고, 대부분 singleton 혹은 prototype이다. 이 두가지를 알아보기 전에 한가지 정리가 필요하다. 용어부터 정리해보자. Identity (동일성) 그리고 equals (동등성) 두가지가 있다 Identity (동일성) 은 객체의 주소가 같다. 이 말은 obj1 == obj2 && obj2 == obj3 를 했을 때, true가 나오는 Hashcode가 동일한 것이..

Framework/Spring 2022.07.29

[Spring] 스프링의 DI가 뭘까?

목표 : Spring의 DI에 대해 설명할 수 있다. 이제 DI(Dependency Injection)에 대해 알아보려고 한다. 앞서 IoC Container에 대한 설명에서 Spring 공식문서에 IoC와 DI를 동일하게 표현하고 있다는 걸 먼저 볼 수 있었다. 그럼에도 용어가 다른 것에는 다른 의미가 있을 텐데, 어떻게 된건지 알아보도록 하자. 이번에도 역시, Spring 공식문서의 Dependencies 부분을 참고하여 확인해볼 것이다. Dependencies 보통의 Application은 하나 이상의 Object로 구성된다. 그리고, 이 Object들은 서로 함께 동작하게 된다. 그 예시를 보도록 하자. // A.java public class A { private B b = new B(); pu..

Framework/Spring 2022.07.26