Developer Note/국비과정 수업내용 정리&저장

24년 11월 08일

DH_PARK 2024. 11. 21. 00:48

이제부터 슬슬 스프링을 배우기 위한 단계로 진입한다.

이때까지 간간히 유데미에서 스프링 강의를 보았지만 그 당시에는 이해가 하나도 안됐었는데 ,

확실히 여기서 자바코드로 MVC패턴에 대해서 이해를 하고 나니 확실히 조금씩 이해가 가기 시작한다.


FRAMEWORK란

작업에 필요한 여러가지 것들을 따로 직접 구할 필요없이 FRAME내에서 가져와서 쓸수있도록 제공하는 틀

FRAMEWORK / LIBRARY / API 차이

- 능동/수동 UTILITY POSITION 개발자POSITION

FRAMEWORK 능동 제작을 의뢰 조건 제공
LIBRARY 수동 직접 도구를 사용하서 제작 직접 사용
API 능동 프로그램간(or 시스템-프로그램 간) 연결 통신

API는 크게 두 가지 방식으로 나뉩니다:

  1. REST API: HTTP 프로토콜을 사용하며, 대부분의 웹 서비스가 이 방식을 따릅니다.
  2. SOAP API: XML 형식으로 통신하며, 더 정형화된 프로토콜을 사용합니다.

배포작업이란 ? 어플리케이션을 외부에서 이용하도록 온라인화시키는것

사전에 빌드라는 작업을함.

이 빌드라는걸 해서 모든 파일들을 하나의 단일파일로 만들어서 온라인에서 사용할 수 있게 함


STS 란 ?

이클립스 IDE 이긴 한데 스프링 전용으로 나온 이클립스라고 생각하면 된다.

STS 설정

  • 스프링 STS 설정 워크스페이스 인코딩 무조건 지정해야함
  • files 설정도 인코딩 설정 UTF-8
  • 여기서도 tomcat 서버 생성
  • project legacy 파일 생성 → configure 설정에서 default 빼고 remove
  • STS3 은 직접 파일을 설치해줘야함. 그래서 MVC 프로젝트를 생성하려면 context.html 인가 이거를
    • C:\워크스페이스\.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core 안에 넣어줘야함.(구글링 참고) context.html 파일을 다운받아서 넣어줘야함 !
    • 그러고 C:\워크스페이스\.metadata\.sts\content 경로 안에 org.springframework.templates.mvc-3.2.2폴더안에 파일을 넣어줘야 프로젝트를 생성할 수 있음 (이 폴더도 다운받아야 한다 !)
    • https://programmerdaddy.tistory.com/m/409 참고

target 폴더 안 pom.xml 설정 이것저것 의존성 추가 해주는중..

각 xml 파일의 역할

  • Servlet-context.xml
    • spring mvc 의 웹 관련 설정을 담당하는 파일.
    • 주로 컨트롤러 , 뷰와 같은 웹 계층에서 사용되는 Bean설정
    • FrontController 역할을 하는 DispatcherServlet 설정 파일
  • root-context.xml
    • 애플리케이션의 전역 Bean 설정 파일.
      • 애플리케이션의 비즈니스 로직과 관련된 service , repository 계층 Bean 을 정의함.
      • DB 연결 , 트랜젝션 관리 , 서비스 Bean 등의 전역 Bean 설정을 포함함.
      • 모든 서블릿과 컨트롤러가 공유할 수 있는 전역 애플리케이션 설정을 정의함
    • 위치 : WEB-INF 디렉토리에 위치. web.xml 에서 ContextLoaderListener 를 통해 로드됨
    • 간단히 Bean 정의하는곳임
  • web.xml
    • Web.xml 에서는 크게 DispatcherServlet, ContextLoaderListener, Filter 설정을 한다.
    • 클라이언트의 요청을 처리하는 DispatcherServlet.
    • 웹 어플리케이션 컨텍스트 단위의 설정을 로드하는 ContextLoaderListener,
    • 이건 꼭 거쳤으면 좋겠다 하는 파일. Filter
  • pom.xml
    • pom : project object model 의 약어.
    • 프로젝트의 설정 , 종속성 , 빌드 및 배포 구성을 정의하는데 사용하는 파일이다.
    • 의존성을 이 파일에서 관리한다 (예 : jdbc , emmet , hikari 등등)
    • 주요 태그 :
    <groupId> 프로젝트의 그룹 ID를 정의. 주로 회사 도메인 또는 패키지 이름.<artifactId> 프로젝트의 이름을 정의. 빌드 산출물의 기본 이름으로 사용됨.
  • /*: 하위 경로의 모든 요청을 처리.
  • /: 기본 루트 컨텍스트의 거의 모든 요청을 처리하지만, 정적 파일은 기본적으로 제외.

POSTMAN

API 호출 및 테스트 하는 대표적인 도구

각 어노테이션 정리

  • @Bean : 스프링 컨테이너에서 관리하는 자바 객체.
    • new 키워드 대신 사용한다고 생각하면 됨
    • 이 어노테이션은 반환하는 객체를 Bean으로 만들어주는것이다.
    • 스코프는 기본적으로 싱글톤 타입
  • @Component : 클래스를 bean으로 등록하는 것
  • @Autowired : 필요한 의존 객체의 타입에 해당하는 빈을 찾아 주입한다.
    • 기본값이 true라서 주입을 할 대상을 찾지 못한다면 application 구동에 실패한다.

로그 레벨

TRACE > DEBUG > INFO > WARN > ERROR > FATAL
  • 로그 레벨은 중요도에 따라 등급을 가진다.
  • 가령, DEBUG는 개발 시 디버그 용도로 사용하는 레벨이고, ERROR는 에러 발생시를 뜻하는 레벨이다.
  • 로그 레벨 설정 시, INFO로 설정한다면, 해당 레벨과 상위 레벨인 INFO, WARN, ERROR, FATAL로그만 표시된다.

파라미터 받기

@Data //게터세터 자동으로 합쳐서 만듬 @Builder //객체생성 디자인패턴

public void p01(@RequestParam(value="name",required=true) String name) {		//true 하면 파라미터 들어와야 반응, flase 면 

@RequestMapping(value = "/t1",method=RequestMethod.GET) //t1이라는 이름의 매핑 이름

PersonComponent personComponent;	//이름을 지정하지 않으면 앞글자를 소문자로 한다.

	assertNotNull(dto); 	//null 이 아닌지 판단

postman을 활용하자 .!

프로그램 내에서 url 파라미터를 한글로 받으면 인코딩 설정을 아직 해놓지 않아서 파라미터를 제대로 받지 못함.

postman 에서 파라미터를 입력해주면 한글로 뜬다.

'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글

24년 11월 12일  (0) 2024.11.22
24년 11월 11일  (1) 2024.11.21
24년 11월 06일  (0) 2024.11.20
24년 11월 7일  (0) 2024.11.19
24년 11월 5일  (0) 2024.11.11