Spring

콜라맘·2023년 7월 3일
0

Spring

목록 보기
1/14
post-thumbnail

🍀 스프링 설치하기

  1. JDK11을 다운로드(충돌 방지) 후 설치
    JDK11 다운로드
  2. Spring 다운로드 후 설치
    spring 다운로드
  3. spring-workspace 폴더 만들어 workspace폴더 지정
  4. 기본 설치된 서버 지우고 apache tomcat으로 재설정
  5. 프로그램 종료 후 스프링 폴더의 STS.ini 파일에 아래 내용 추가
    -vm C:\Program Files\Java\jdk-11\bin\javaw.exe(jvm경로를 넣는다)
  6. window -> preference에서 encoding 검색 후 모든 인코딩 설정을 'UTF-8'로 변경
  7. File -> new -> SpringLagacyProject 선택
  8. SpringMVCProject 선택 후 next화면에서 아래처럼 com.mycompany.myapp 형태로 작성
  9. 프로젝트 폴더에 빨간 엑스 나올 때 : 프로젝트 우클릭 -> Maven -> update project 실행

🍀 스프링 프레임워크

  • 자바를 이용해 웹 애플리케이션 서버 개발을 효율적으로 진행하기 위한 프레임워크
  • 다양한 디자인 패턴 및 기능들이 미리 구현되어 있기 때문에 효율적으로 개발을 진행할 수 있다

🌼 프레임워크(Framework)

  • 프로젝트 개발에 효율적인 구조를 미리 만들어 놓은 것(PPT 템플릿 같은 것)
  • 개발자는 이미 완성된 구조에 빈칸을 채우는 느낌으로 프로젝트를 진행할 수 있다
  • 전체적인 구조(디자인 패턴 등)에 대한 지식이 없는 초보 개발자들도 프로젝트에 투입할 수 있다는 장점이 있다
  • 일정 수준 이상의 품질이 항상 보장된다
  • 개발 비용이 많이 절감된다

🌼 스프링의 특징

1. POJO (Plain Old Java Object)

  • JSP처럼 새로운 공부가 필요한 문법들의 사용을 지양한다
  • 백엔드에 JSP 코드가 섞이는 것은 바람직하지 않으며 순수 JAVA코드로 작성되어야 한다
  • 익숙치 않은 별도의 API를 최대한 배제하여 개발자의 혼란을 최소화 한다

2. 제어의 역전(IoC, Inversion of Controll)

  • 개발자가 객체를 생성하는 것이 아니라 스프링이 객체를 만들고 메서드를 호출한다
  • 객체의 생성과 관리를 개발자가 하는 것이 아니라 스프링 프레임워크가 대신한다

3. 의존성 주입(DI, Dependency Injection)

  • 외부에서 객체를 주입받아 사용하는 것
  • 생성자를 아예 사용하지 말자 (생성자로 인해 유지보수 비용이 증가)
  • 프로젝트 내부의 생성자 사용을 모두 제거하여 객체간의 결합도를 낮출 수 있다

※ 결합도가 높다 -> 하나 수정하면 빨간 줄이 100개 뜬다
※ 결합도가 낮다 -> 객체 하나 수정해도 거의 문제가 안생긴다

🌼 스프링 프로젝트의 기본 구조

  • src/main/java : 자바 코드를 작성하는 곳
  • src/main/resources : 자바 코드를 실행할 때 필요한 자원들을 저장하는 곳
  • src/test/java : 작성한 자바 코드에 대한 테스트 코드를 작성하는 곳
  • src/test/resources : 테스트 코드를 실행할 때 필요한 자원들을 저장하는 곳
  • Maven Dependencies : 이 프로젝트가 의존하고 있는 다른 프로젝트들 목록
  • webapp/resources : 웹 정적 자원들을 보관하는 곳
  • webapp/WEB-INF/spring/appServlet/servlet-context.xml : appServlet(디스패처 서블릿)의 초기화 파라미터들을 정의하는 곳(지역 초기화 파라미터, ServletConfig)
  • webapp/WEB-INF/spring/root-context.xml : 전역 초기화 파라미터들을 정의하는 곳(전체 초기화 파라미터, ServletContext)
  • webapp/WEB-INF/views : 뷰 페이지(.jsp)들을 보관하는 곳
  • webapp/WEB-INF/web.xml : 서버 설정 파일
  • pom.xml : 메이븐 프로잭트에서 사용하는 설정 파일

🍀 스프링 인코딩설정

  • web.xml에 다음 내용을 추가 후 서버 재시작
<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
		<!-- 설정된 인코딩이 있더라도 내가 등록한 것으로 강제로 인코딩 하게 설정 -->
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<servlet-name>appServlet</servlet-name>
	</filter-mapping>
profile
콜라맘 코딩일기

0개의 댓글