- 오랜만에 intellij나 java를 사용해보려고 하니까 자바 버전 설정부터 애를 먹었다.. java 18이 나온 줄 모르고 8이랑 헷갈려서 헤메다가 그냥 11로 설정했다.
- thymeleaf를 쓰는데 model에서 넘어온 변수를 제대로 인식하지 못하는 오류가 있었다.
https://yoons2owo.tistory.com/15 를 참고해서 임시로 해결했다.
- ctrl + p 로 어노테이션의 옵션을 보고 설정할 수 있다.
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- 이렇게 static으로 class내부에서 또 다른 class를 생성할 수 있다.
getter, setter를 이용해 접근하는 방식이 자바 bean 표준 방식이다.
- 기본적이지만 잊고 있던 static, public, private 같은 메소드 키워드들에 대해 다시 상기했고, controller, service, repository를 정말 간단히 다뤄보면서 예전에 배웠던 내용들을 상기할 수 있었다.
- 너무 하기 싫어서 오후 6시까지 통으로 날려버렸다...
- 어제에 이어서 입문 강의를 보면서 배웠던 내용을 상기했다. 이전에 mybatis를 이용해서 백엔드 스터디를 했던 기억들도 조금씩 났고, 처음 강의를 볼 때보다 훨씬 잘 이해된다. 아직까지는.
- 스프링 빈을 직접 등록하는 것과 그것에 대한 원리를 간단히 배웠다. 결국 스프링의 가장 큰 기능 중 하나는 클래스들을 bean으로 등록해두고 DI를 통해 싱글톤으로 그것들을 관리하고 주입해주는 것, 그리고 이러한 기능을 통해 Interface로 구현된 객체들을 편하게 변경할 수 있는 객체지향언어의 장점에 대해서 배웠다. 추가로 AOP를 이용할 수 있는 원천도 바로 SPRING이 객체 주입을 관리해주기 때문이다.
- thymeleaf를 이용해 링크를 이동하고 객체를 주고 받는 것과 데이터베이스를 연동하는 내용을 배웠다. 이번에는 h2가 아니라 mysql로 한 번 스스로 해보려고 했는데, 너무 시간을 많이 잡아먹을 것 같아서 일단은 그냥 h2로 다시 따라해보려고 한다. 지금 주는 db가 아니라 spring을 복습하는 것이기 때문에.
롤 하다가 또 정신 못 차리고 하루를 절반 날렸다. 오전에 알고리즘 풀 생각이었는데, 일어나기만 하면 의욕이 사라져버린다.
원래 주단위로 쓸 계획이었는데, 무기력증이 또 도져서 요 며칠 아무것도 안 해버렸다. 그래서 이번주까지 한 번에 묶어서 쓸 계획이다.
자바 코드를 이용해 간단한 예제 만들기를 해보았다. 입문에서 배운 사실과 동일하지만, 이렇게 했을 때 문제점은 다형성을 아주 잘 활용한다고 해도 OCP, DIP를 위반한다. 또 직접 구현객체를 생성하고, 연결한다는 점에서 SRP도 위반한다.
이를 해결하기 위해 의존관계주입만을 하는 AppConfig 클래스를 만들어서 역할을 수행하도록 하는 작업을 해보았다.
스프링으로 AppConfig를 bean으로 등록해서 사용해보았다.
코드 자체는 spring container를 생성하고 거기서 또 bean을 조회해서 사용하기 때문에 코드가 더 복잡해진다고 느꼈다. 하지만 이렇게 했을 때 장점은 아마 스프링이 싱글톤으로 객체를 관리해주는 것일 것이다.
확실히 다시 보니 이해 자체는 잘 되지만, 흥미가 떨어진다.. 내일부터는 정말 꾸준히 들을 각오이다.