*목차 설정
목차를 설정하는 이유는 긴 메모를 효율적으로 보기 위함이다!
-> velog는 '제목'을 통해 목차를 자동 생성해준다.
-> 다만, H4는 목차를 생성해주지 않는다.
-> ex.) H2로 설정한 제목에 밑에 H3를 추가하면, H3가 H2에 종속되어서 그룹핑 된다. 종속되지 않는 새로운 목차를 만들고 싶으면 H2로 새로운 제목을 설정하면 된다.
위 강의는 유튜브 백기선님의 Spring Boot 강의를 바탕으로 메모했음을 알립니다.
(출처: https://www.youtube.com/watch?v=CnmTCMRTbxo&list=PLfI752FpVCS8tDT1QEYwcXmkKDz-_6nm3)
문득 드는 생각이, 모르는 언어 공식 홈페이지 가서 documentation 보고 공부하는 것도 나쁘지 않아 보임.
->하지만, 시간 효율적인 건 강의가 나을 수도 ㅎㅎ...
->어쨋든, 이런 방법도 있다.. 라는 점을 참고하기!!

->이 분도 이렇게 documentation 보고 녹화하시는 거 같음.
※Spring Boot 공식 문서: https://docs.spring.io/spring-boot/documentation.html



->Spring Boot 설치 전에 java 버전 먼저 확인하기
->java SDK v1.8 -> java 8 이상부터

->내가 직접 vscode에서 spring boot 실행해 봄.
->python 등과 다르게 maven이나 gradle이 가상환경 역할을 해 줌.(프로젝트 별 종속성 관리) -> 따로,가상환경을 만들지 않아도 된다.

->DemoApplication.java 코드에서 main문을 Run하면,

->터미널에 이런식으로 뜨게 된다.
cf.)

->나는 database 수업 때 포트번호를 apache에서 8080으로 써서, 포트번호를 8081로 설정해둠.

->웹페이지에 localhost:8081 검색해서 저런 페이지 뜨면 정상적으로 작동하는 것이다.

->터미널에서도 8081로 잘 뜨는 것을 볼 수 있음.
->터미널 로그 보니깐, tomcat이 서버인가 봄. ->gpt가 apache tomcat이라고 함. 맞다고 함.
Q) 아니, DemoApplication.java에서 main문 run할 때는 서버 잘 켜지는데, 왜 ./mvnw spring-boot:run 명령어는 잘 안되는거야?
<여러 이유들>






나는 이 문제 였음.

->이거 class 제대로 있음...

->(미해결) 뭐가 문제인지 모르겠음... ㅠㅠ
->환경 변수에서 시스템 변수에 JAVA_HOME, MAVEN_HOME 설치 파일 경로 설정하고, 사용자 변수 PATH에서 \bin(bin 폴더에 실행 파일 있음) 주소까지 설정했는데도 해결 안됨...


여러 가지 해결책들 다 찾아보고 적용해도 안 됨. 정말로 원인 분석이 안됨..
일단, 이렇게 환경 변수 설정 하니깐, 명령 프롬프트에 mvn -v 명령어 치면 버전 나오고, vscode도 다시 껐다 키니깐 정상적으로 되는데


근데, 같은 에러 뜸 계속.. 즉, mvn을 설치하고 환경 변수 설정하는게 문제가 아니었던 거임.
->에러 코드 봐도 이게 문제는 아닌 거 같았음..
->미해결!
cf.) 만약에, dependencies에 내가 따로 추가해야 할 게 있으면, pom.xml에서 dependency를 따로 추가하면 된다.

(다시 강의로 돌아와서...)

Maven pom.xml 파일에 관한 내용임. 한 마디로, '상속(inherit)'에 관한 내용임. -> 자바의 '상속' 개념
이 경우는 부모(parent) 프로젝트가 있을 경우에 해당함. 부모 프로젝트에도 pom.xml 파일이 있으므로, 자식 프로젝트에 부모 pom 파일을 상속하는 것임(dependency,plug-in,...).
필수는 아니고, 이렇게 부모-자식 간에 관계가 형성될 때 사용한다.
->부모 프로젝트에 미리 자식 프로젝트에 쓸 모든 의존성(dependencies)에 대한 버전을 미리 기입하므로(spring-boot-starter-parent에 기입), 자식은 의존성(dependencies)에 대한 버전 기입 없이 dependency만 추가하면 된다.
※상속의 장점: 1. 중복 설정을 줄인다. 2.유지 보수의 효율성을 높인다.


->starter-parent랑 똑같이 작동한다.
*다만, 약간의 차이점:




(출처: https://velog.io/@gehwan96/CLICommand-Line-Interface%EB%9E%80)

->CLI는 bash 나 zsh shell에서 쓸 수 있다.
p.s. 백기선 강사님은 CLI를 쓰지 않는다고 하심. 다른 데에서는 쓰지만, 굳이 Spring-boot에서는 쓰지 않는다고 하심.
https://docs.spring.io/spring-boot/tutorial/first-application/index.html
->Spring-Boot 공식 홈페이지 documentation
->Maven or Gradle(빌드 도구,build tools) setting 부터, Hello World 출력까지 알려줌.
cf.)Maven,Gradle


->이 코드 좀 바뀐 거 같음. 지금은
<내 코드>




->? query문으로 param을 직접 입력해준다.(param 입력 안해주면, param 부재로 인한 400 에러 발생함.)

->이 말은 즉, localhost:8081/ <- 이 부분을 의미한다. 그래서 value에 '/'를 써야한다는 의미이다.(웹 주소의 형식이므로)
Error: overrides version defined in dependencymanagement. the managed version is 1.18.28.
->이런 식으로, 분명 pom.xml 파일 코드 상에는 문제가 없는데 컴파일을 제대로 못할 때
->'cache(캐시)'의 문제일 수 있다!! -> 캐시의 중복 같은 원인..
※해결책!
