HW풀이
등록 & 주입
- @Repository: 영속성 개체를 관리하는 도구, file이나 DB 작업
- @Autowired
중복검사
상세조회 활용
Lombok
- dependencies
- 코드 자동화 도구(Dto의 field 작성을 수월하게 해줌, + Dto는 java version이 올라가며 대체할 Record class 존재(java 8, 11에선 X))
> 종류
@Setter
@Getter
@NoArgsConstructor
@ToString
@Data
Setter&Getter, ToString을 포함한 lombok annotation
vscode spring dashboard 실행 X
> 상황
- 어제까지만 해도 잘 작동하던 vscode dashboard가 실행 X
error message
Cannot activate the 'Spring Boot Dashboard' extension because it depends on an unknown 'Pivotal.vscode-spring-boot' extension.
> Error 이유 추측
- JDK 설정이 안되있어서 문제 발생
-> java file을 실행했을 때, terminal에 뜨는 message를 보면 JDK 설정 문제 X
- Lombok setting에서 문제 발생
-> lombok을 건드리지 않은 다른 컴퓨터에서도 똑같은 message가 뜨는 것을 보면 lombok 문제 X
- Spring Extension 관련 업데이트 후 충돌 발생
- Extension V update 확인
- Spring Initializr: 230130
- Spring Boot Dashboard: 230120
- Spring Boot Tools: 230201
google 검색 중 Pivotal.vscode-spring-boot이 포함된 주소의 marketplace를 들어갔더니 Spring Boot Tools가 나왔음
- Spring Boot Extension Pack: 221214
Try 1. 다른 컴퓨터에 setting 후 작동하는지 확인
- VSCode 설치
- Amazon Correto 17 설치, 환경변수 설정
- Extension Pack for Java 추가
- Spring Boot Extension Pack 추가
- -> 똑같은 error message
- vscode marketplace에서 V 1.43 다운(현재 1.44)
- VScode에서 control + shift + p / Install from VSIX
- -> 똑같은 error message
Try 3. 사용 컴퓨터 vscode 초기화 후 다시 설치
| VSCode 삭제 |
- extensions 삭제
- 위치:
c:\user\사용자이름\.vscode
- 설정파일 삭제
- 위치:
c:\user\사용자이름\AppData\Roaming\Code
- VScode 삭제
| VSCode 재 설치 |
- VSCode 설치
- Java 개발환경 설정
- Spring 개발환경 설정
설치 후 문제 해결 과정
1. Error message 해석
- 'Spring Boot Dashboard(Extension)'이 'Pivotal.vscode-spring-boot(Extension)'을 depends on 하는데, pivotal이 Unknown이므로 Dashboard에서 pivotal을 삭제해주면 되지 않을까 ?
- Extension folder에서 Spring Boot Dashboard 폴더 확인
pivotal은 너무 많아서 제거 불가! -> google 검색 후 pivotal == spring boot tool임을 확인 -> spring boot tool 문제임을 파악
- github에 vscode spring 검색
- upstream extension의 publisher id가 pivotal에서 vmware로 바뀌어 문제 발생임을 파악
- 다시 Spring Boot Tools를 vscode 마켓플레이스에서 다운, 실행하니 정상 작동!!!
JSP
- Spring에 홈페이지 화면을 출력하는 방법은 다양하다
Rendering
- 정보(code)를 변환해서 웹사이트 형식으로 보여주는 것
- Controller(안 보이는 부분, business 로직) -> 화면(보여지는 부분)
forward(포워드)
Controller가 spring code를 화면으로 변환해서 server에 전달
Rest-API
HTML
- thymeleaf: 현재 표준
- apache velocity
- tiles framework ...
JSP
- 옛날 표준, 한국에서 가장 많이 씀
- java를 페이지 내에서 사용 가능
> dependency
> JSTL
- Jsp Standard Tag Library
- JSP 표준 태그 라이브러리의 약어
if문
<c:if test="${param.mode == 'error'}">
</c:if>
if, else문
<c:choose>
<c:when test="">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
for문
tomcat embed jasper
> JSP folder
- src/main/webapp/WEB-INF/views
JSP Directive
- JSP 페이지가 실행될 때 필요한 정보를 JSP container에 알리는 역할
page directive
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
taglib directive
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>