스프링 스프링 프레임워크의 장,단점 및 특징 스프링 프레임워크의 특징을 설명하고, 장점 및 단점을 포스팅합니다. 프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합입니다. 개발자라는 직업은 각 개발자의 능력에 따라 결과물의 완성도가 천차만별이기 때문에, 이를 극복하고자 하여 나온 결과물이 프레임워크입니다. 프레임워크를 사용한다면 프로그램의 기본 뼈대와 틀을 정하고, 모든 팀 구성원들이 이 틀과 뼈대에 맞게 살을 붙이기 위해 코드... 스프링공부Spring프레임워크Spring [토비의 스프링] - 예외 체크 예외가 발생할 수 있는 메소드를 사용할 경우 반드시 예외를 처리하는 코드를 함께 작성해야 한다. 콜백과 템플릿처럼 긴밀하게 역할을 분담하고 있는 관계가 아니라면 자신의 코드에서 발생하는 예외를 그냥 던져버리는 건 무책임한 책임회피일 수 있다. 예외 회피와 비슷하게 예외를 복구해서 정상적인 상태로는 만들 수 없기 때문에 예외를 메소드 밖으로 던지는 것이다. 하지만 예외 회피와 달리, 발생... 토비의스프링스프링코드스쿼드예외처리스프링 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 [ MVC 프레임워크 만들기 ] 프론트 컨트롤러 도입 - v1 프론트 컨트롤러 도입 - v1 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없이 로직의 일관성을 가져갈 수 있다. FrontControllerServletV1 - 프론트 컨트롤러 ControllerV1 을 구현한 클래스와 ControllerV2 를 구현한 클래스를 비교해보면, 이 부분의 중복이 확실하게 제거된 것을 확인할 수 있다. 프론트 컨트롤러 V2... 스프링MVCFrontControllerSpringFrontController 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 [ 구조 이해 ] 스프링 MVC는 DispatcherServlet 의 부모인 FrameworkServlet 에서 service() 를 오버라이드 2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다. 스프링 MVC의 큰 강점은 DispatcherServlet 코드의 변경 없이, 원하는 기능을 변경하거나 확장할 수 핸들러 어댑터: org.springframework.web.servlet.... MVC스프링SpringMVC 스프링 스터디 ; 메시지, 국제화 : 스프링은 이에 대한 보다 유동적인 처리를 위하여 메시지 기능을 제공합니다 : 스프링부트를 사용하면 메시지 관리 기능을 제공하는 MessageSource 를 자동으로 스프링 빈으로 등록해줍니다. : 이때 MessageSource 인터페이스의 내용은 다음과 같습니다. 다음과 같음을 확인할 수 있었습니다. : application.properties에 다음과 같이 메시지 소스를 설정할 수 있습... 스프링스프링 java spring - Custom annotation을 만들어보자 Annotation 이란 ? 소스코드에 제공되는 메타데이터이다. 앱이 처리하는 데이터가 아닌 컴파일 과정,실행 과정에서 코드를 어떻게 처리해야 하는지 알려주는 용도로 사용된다. ex ) @Controller @Service # 직접 만들어 보자. 이러한 어노테이션을 사용자가 직접 정의 하여 구현 할 수도 있다. # 시나리오 특정 권한을 체크하는 커스텀 어노테이션을 만들어 적용해보자. @int... 커스텀어노테이션자바스프링스프링 [스프링 기초] 간단한 프로젝트 만들기 디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 “규약”을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다. 클라이언트에서의 요청을 받는 Controller 클래스에서 DB에 접근을 해 비지니스 로직을 처리하고 PrintWriter 클래스를 통해서 홈페이지 화면에 내용을 출력 하고 있습니... MVC패턴sts스프링 부트스프링MVC패턴 [스프링 기초] 스프링이란? 사람이 붕어빵을 만들 때 미리 준비 해 둔 반죽을 틀에 넣을 때 다양한 도구들을 사용할 수 있는데 주전자를 통해서 넣어도 되고 국자를 사용해서 넣어도 됩니다. 반면 자바 구성의 경우에는 @Configuration 어노테이션과 @Bean 어노테이션을 통해서 ServiceConfiguration 클래스가 스프링 애플리케이션 컨텍스트에 빈을 제공한다는 것을 명시해주고 등록된 빈들은 컨테이너의 관리... IoCdi스프링SpringIoC 자바 ORM 표준 JPA 프로그래밍 - JPA란? 동아리에서 스프링 스터디를 시작하게 되었는데 ‘자바 ORM 표준 JPA 프로그래밍’ 을 10장까지 함께 읽고 각자 분량 발표하기가 목표다! JPA (Java Persistence API)는 자바 진영의 ORM 기술 표준 애플리케이션과 JDBC 사이에서 동작 ORM 이란? ORM(Object Relational Mapping)은 객체와 관계형 데이터 베이스를 매핑. 이를 통해 패러다임의 불일치... 자바ORMJPA스프링JPA 스프링 스터디 ; 검증2 Bean Validation 이렇게 지정한다면 애노테이션 하나로 검증 로직을 매우 편리하게 적용할 수 있습니다. Bean Validator는 보편적으로 사용되는 빈 값, 범위 등에 대한 검증 로직을 모든 프로젝트에 범용적으로 사용할 수 있도록 표준화한 인터페이스 입니다. 이를 통해 알 수 있는 것은, 타입 변환에 성공해서 바인딩에 성공한! : NotBlank라는 오류 코드를 기반으로 MessageCodeResolver를... 스프링스프링 프론트 컨트롤러 패턴 - 스프링 REST AP를 구현할 때, 한개의 URL에 하나의 서블릿을 대응해야만 했던 구조에서 코드의 중복을 줄이기 위해 고안된 패턴 따라서 프론트 컨트롤러를 여러 서블릿 컨트롤러들의 앞단에 두어 일종의 ‘수문장’ 역할을 하게 둠 → 이를 통해 컨트롤러 공통영역을 처리해 줄 수 있도록 함. Front Controller 패턴의 특징을 살펴보자 프론트 컨트롤러 서블릿 하나로 클라이언트의 모든 요청을 수... Front Controller스프링MVC프론트 컨트롤러 패턴스프링Front Controller Spring (2) - IoC에 대하여 객체의 생명주기(생성-설정-초기화-소멸)부터 생명주기의 관리를 개발자가 아닌 스프링 프레임워크로 모든 객체에 대한 제어권이 바뀐, 즉 주체가 되어 담당하는 것을 말합니다. 즉, 제어의 역전(IoC)은 메서드나 객체의 호출을 개발자가 결정하는 것이 아닌 외부에서 결정되는 것을 의미하며, 줄여서 제어의 흐름을 바꾼다는 뜻으로도 볼 수 있겠습니다. 객체지향 프로그래밍은 각 객체마다 자기의 역할과 ... Inversion Of ControlSpring제어의역전IoC스프링Inversion Of Control [스프링]web.xml, servlet-context.xml, root-context.xml 설정을 위한 설정파일 WAS 구동 시 이 파일을 통해 웹애플리케이션을 설정 root-context나 servlet-context파일 등 각종 설정파일 정의 스프링이 관리하는 빈들이 담겨있는 컨테이너 Controller, View, Intercepter, 어노테이션 관련 설정 JSP 관련 객체 Request 처리 관련 어노테이션 URL root-context 참조 가능 root-context에... 독학스프링독학 [Junit] @BeforeEach, @BeforeAll, @AfterEach, @AfterAll에 대해 알아보자 토비의 스프링 스터디를 진행하며 2장에서 더 알아보고 싶은 내용으로 위와 같은 주제를 정했다. 테스트를 수행하는 데 필요한 정보나 오브젝트를 픽스처라고한다. 테스트 클래스에 있는 어떤 테스트를 처음 실행하기 전 한 번만 실행된다. @BeforeEach == @Before 현재 클래스의 각 @Test, @RepeatedTest, @ParameterizedTest 또는 @TestFactory 메... @BeforeEach@BeforeAllafterall테스트JUnit5afterEach스프링@BeforeAll 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 [ 기본 기능 ] HTTP 요청 메시지 - JSON HttpServletRequest 의 request.getParameter() 를 사용하면 다음 두가지 요청 파라미터를 조회할 수 있다. 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 데이터가 넘어오는 경우는 @RequestParam , @ModelAttribute 를 사용할 수 없다. HTTP 메시지 바디의 데이터를 InputStrea... MVC스프링SpringMVC 타임 리프 기본 기능 자바스크립트 객체 프로퍼티 접근 처럼 할 수 있다 th:with 를 사용하면 지역변수는 선언된 태그안에서만 사용 가능하다 타임리프 유틸리티 객체 경로 변수 + 쿼리 파라미터 ex) <span th:text="hello"> ex) <span th:text="hello world"> → <span th:text="'hello world'"> ex) <span th:text="|hello ${da... MVC2자바스프링타임리프MVC2 DI - XML 설정 방법 코드 di-xml 예제 프로젝트 구성 di-xml 예제 프로젝트 만들기 자바 버전 설정 di-xml 프로젝트 환경 : POM.xml spring-context -> Spring 프레임워크 버전 src/main/resources/applicationContext.xml 생성 src/main/resources/applicationContext.xml 네임스페이스 추가 beans 네임 스페이스 : 빈(... didi설정방법스프링di [토비의 스프링] - 템플릿 템플릿이란 바뀌는 성질이 다른 코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법 위의 코드는 .close()를 통해 자원을 반납하기 전에 예외가 발생하면 리소스가 정상적으로 반환되지 않을 수 있다. 따라서 예외가 발생해도 정상적으로 자원을 반납할 수 있도록 아래와 ... 템플릿코드스쿼드토비의스프링스프링스프링 자바 ORM 표준 JPA 프로그래밍 - 단방향 연관관계, 연관관계 사용 테이블 : 외래 키를 사용해서 관계를 맺음 단방향 관계 : 회원 -> 팀 or 팀 -> 회원 양방향 관계 : 회원 -> 팀 and 팀 -> 회원 회원과 팀의 관계를 통해 다대일(N:1) 단방향 관계를 알아보자 객체 연관관계 회원 객체는 Member.team 필드(멤버변수)로 팀 객체와 연관관계를 맺음. 테이블 연관관계 회원 테이블은 TEAM_ID 외래 키로 팀 테이블과 연관관계. 회원 테이블... 자바ORMJPA스프링JPA 스프링 핵심 원리 2장 하지만 기존에 만들었던 AppConfig역시 OCP와 DIP를 만족하는 컨테이너 역할을 충실히 수행한다. 스프링 적용하기 기존에 만들었던 AppConfig 클래스에 @configuration과 @Bean만 붙여주면 스프링 빈에 등록되어 사용할 수 있다. 스프링 컨테이너를 통해 필요한 객체를 찾을 수 있는데, applicationContext.getBean() 메소드로 찾을 수 있다. 스프링 ... Spring스프링Spring 👉포스메뉴 개수 변경 정말로 프로젝트하면서 이부분을 하면서 아주 고통스러웠던 기억이지만, 이상하게 글을 작성하는 지금도 선명하다. 목적: 갯수를 변경했을 때 주문개수와 결제금액이 변경한 값이 들어가야된다. 그렇게 하기 위해서는 처음에 입력 되있는 개수 값을 담을 수만 있다면 처리 할 수 있다. 하지만 내가 개수를 클릭하게 되면 내가 변경한 값에서만 담을 수 있었지, 그전 값을 담는 데 계속 실패했다. 그렇게 3시... 스프링프로젝트블루보틀블루보틀 [인프런_스프링입문]섹션 6. 스프링 DB 접근 기술 데이터베이스 파일을 생성하면(jdbc:h2:~/test), 데이터베이스가 정상 생성된다. build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 스프링 부트 데이터베이스 연결 설정 추가 Jdbc 회원 리포지토리 스프링 설정 변경 스프링 부트는 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어둔다. 회원 서비스 스프링 통합 테스트 ... 스프링인프런스프링입문스프링 서버 설계 키워드 : RestController, Service, Repository, RequestDto - domain 패키지 & 클래스 만들기 - Timestamped 상속 - Repository 인터페이스 만들기 - RequestDto 클래스 만들기 - service 패키지 & Service 클래스 - controller 패키지 & Controller 클래스... 서버API스프링웹API [인프런_스프링 핵심 원리-기본편]섹션 1. 객체 지향 설계와 스프링 ㆍ자바 언어의 가장 큰 특징 - 객체 지향 언어 ㆍ스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 ㆍ다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경할 수 있다. ㆍ인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. ㆍ클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. 구현을 편리하게 변경할 수 있다. ㆍ... 스프링스프링핵심원리인프런스프링 0909 TIL [그리디] 프로그래머스 조이스틱 문제 해결 특이점 1. 상하는 아스키코드를 이용 2. 좌우는 왼쪽에서 오른쪽으로 이동한 경우와 연속으로 A가 나타난 경우를 계속 갱신 2번에 대한 문제 설명 코드 참고한 블로그 웹의 구성 요소 : HTTP, URI, HTML URI : 기본 URI Scheme + 호스트명 + Path로 구성 scheme : http host : blog.example.com ... TIL스프링알고리즘서블릿TIL 토비의 스프링 Chapter 6.3.1 ~ 6.3.3 정리 데코레이터 패턴은 타깃에 부가적인 기능을 런타임 시에 다이내믹하게 부여해주기 위해 프록시를 사용하는 패턴을 말한다. 데코레이터 패턴에서는 같은 인터페이스를 구현한 타겟과 여러 개의 프록시를 사용할 수 있다. UserService 인터페이스를 구현한 타킷인 UserServiceImpl에 트랜잭션 부가기능을 제공해주는 UserServiceTx를 추가한 것도 데코레이터 패턴을 적용한 것이라고 볼 ... 스프링스프링 스프링 설정 파일(xml)의 분리 스프링 설정 파일이 너무 길어질 경우 효율적으로 관리하기 위해 스프링의 설정 파일을 분리할 수 있다. 일반적으로는 기능별로 분리한다. 위 그림처럼 전체 파일을 3개로 분리했다면, 이런식으로 설정 파일들을 배열로 선언하고 불러오면 된다. 다른 방법으론 import 태그를 이용할 수 있다.... 스프링스프링
스프링 프레임워크의 장,단점 및 특징 스프링 프레임워크의 특징을 설명하고, 장점 및 단점을 포스팅합니다. 프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합입니다. 개발자라는 직업은 각 개발자의 능력에 따라 결과물의 완성도가 천차만별이기 때문에, 이를 극복하고자 하여 나온 결과물이 프레임워크입니다. 프레임워크를 사용한다면 프로그램의 기본 뼈대와 틀을 정하고, 모든 팀 구성원들이 이 틀과 뼈대에 맞게 살을 붙이기 위해 코드... 스프링공부Spring프레임워크Spring [토비의 스프링] - 예외 체크 예외가 발생할 수 있는 메소드를 사용할 경우 반드시 예외를 처리하는 코드를 함께 작성해야 한다. 콜백과 템플릿처럼 긴밀하게 역할을 분담하고 있는 관계가 아니라면 자신의 코드에서 발생하는 예외를 그냥 던져버리는 건 무책임한 책임회피일 수 있다. 예외 회피와 비슷하게 예외를 복구해서 정상적인 상태로는 만들 수 없기 때문에 예외를 메소드 밖으로 던지는 것이다. 하지만 예외 회피와 달리, 발생... 토비의스프링스프링코드스쿼드예외처리스프링 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 [ MVC 프레임워크 만들기 ] 프론트 컨트롤러 도입 - v1 프론트 컨트롤러 도입 - v1 프론트 컨트롤러는 이 인터페이스를 호출해서 구현과 관계없이 로직의 일관성을 가져갈 수 있다. FrontControllerServletV1 - 프론트 컨트롤러 ControllerV1 을 구현한 클래스와 ControllerV2 를 구현한 클래스를 비교해보면, 이 부분의 중복이 확실하게 제거된 것을 확인할 수 있다. 프론트 컨트롤러 V2... 스프링MVCFrontControllerSpringFrontController 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 [ 구조 이해 ] 스프링 MVC는 DispatcherServlet 의 부모인 FrameworkServlet 에서 service() 를 오버라이드 2. 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다. 스프링 MVC의 큰 강점은 DispatcherServlet 코드의 변경 없이, 원하는 기능을 변경하거나 확장할 수 핸들러 어댑터: org.springframework.web.servlet.... MVC스프링SpringMVC 스프링 스터디 ; 메시지, 국제화 : 스프링은 이에 대한 보다 유동적인 처리를 위하여 메시지 기능을 제공합니다 : 스프링부트를 사용하면 메시지 관리 기능을 제공하는 MessageSource 를 자동으로 스프링 빈으로 등록해줍니다. : 이때 MessageSource 인터페이스의 내용은 다음과 같습니다. 다음과 같음을 확인할 수 있었습니다. : application.properties에 다음과 같이 메시지 소스를 설정할 수 있습... 스프링스프링 java spring - Custom annotation을 만들어보자 Annotation 이란 ? 소스코드에 제공되는 메타데이터이다. 앱이 처리하는 데이터가 아닌 컴파일 과정,실행 과정에서 코드를 어떻게 처리해야 하는지 알려주는 용도로 사용된다. ex ) @Controller @Service # 직접 만들어 보자. 이러한 어노테이션을 사용자가 직접 정의 하여 구현 할 수도 있다. # 시나리오 특정 권한을 체크하는 커스텀 어노테이션을 만들어 적용해보자. @int... 커스텀어노테이션자바스프링스프링 [스프링 기초] 간단한 프로젝트 만들기 디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 “규약”을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다. 클라이언트에서의 요청을 받는 Controller 클래스에서 DB에 접근을 해 비지니스 로직을 처리하고 PrintWriter 클래스를 통해서 홈페이지 화면에 내용을 출력 하고 있습니... MVC패턴sts스프링 부트스프링MVC패턴 [스프링 기초] 스프링이란? 사람이 붕어빵을 만들 때 미리 준비 해 둔 반죽을 틀에 넣을 때 다양한 도구들을 사용할 수 있는데 주전자를 통해서 넣어도 되고 국자를 사용해서 넣어도 됩니다. 반면 자바 구성의 경우에는 @Configuration 어노테이션과 @Bean 어노테이션을 통해서 ServiceConfiguration 클래스가 스프링 애플리케이션 컨텍스트에 빈을 제공한다는 것을 명시해주고 등록된 빈들은 컨테이너의 관리... IoCdi스프링SpringIoC 자바 ORM 표준 JPA 프로그래밍 - JPA란? 동아리에서 스프링 스터디를 시작하게 되었는데 ‘자바 ORM 표준 JPA 프로그래밍’ 을 10장까지 함께 읽고 각자 분량 발표하기가 목표다! JPA (Java Persistence API)는 자바 진영의 ORM 기술 표준 애플리케이션과 JDBC 사이에서 동작 ORM 이란? ORM(Object Relational Mapping)은 객체와 관계형 데이터 베이스를 매핑. 이를 통해 패러다임의 불일치... 자바ORMJPA스프링JPA 스프링 스터디 ; 검증2 Bean Validation 이렇게 지정한다면 애노테이션 하나로 검증 로직을 매우 편리하게 적용할 수 있습니다. Bean Validator는 보편적으로 사용되는 빈 값, 범위 등에 대한 검증 로직을 모든 프로젝트에 범용적으로 사용할 수 있도록 표준화한 인터페이스 입니다. 이를 통해 알 수 있는 것은, 타입 변환에 성공해서 바인딩에 성공한! : NotBlank라는 오류 코드를 기반으로 MessageCodeResolver를... 스프링스프링 프론트 컨트롤러 패턴 - 스프링 REST AP를 구현할 때, 한개의 URL에 하나의 서블릿을 대응해야만 했던 구조에서 코드의 중복을 줄이기 위해 고안된 패턴 따라서 프론트 컨트롤러를 여러 서블릿 컨트롤러들의 앞단에 두어 일종의 ‘수문장’ 역할을 하게 둠 → 이를 통해 컨트롤러 공통영역을 처리해 줄 수 있도록 함. Front Controller 패턴의 특징을 살펴보자 프론트 컨트롤러 서블릿 하나로 클라이언트의 모든 요청을 수... Front Controller스프링MVC프론트 컨트롤러 패턴스프링Front Controller Spring (2) - IoC에 대하여 객체의 생명주기(생성-설정-초기화-소멸)부터 생명주기의 관리를 개발자가 아닌 스프링 프레임워크로 모든 객체에 대한 제어권이 바뀐, 즉 주체가 되어 담당하는 것을 말합니다. 즉, 제어의 역전(IoC)은 메서드나 객체의 호출을 개발자가 결정하는 것이 아닌 외부에서 결정되는 것을 의미하며, 줄여서 제어의 흐름을 바꾼다는 뜻으로도 볼 수 있겠습니다. 객체지향 프로그래밍은 각 객체마다 자기의 역할과 ... Inversion Of ControlSpring제어의역전IoC스프링Inversion Of Control [스프링]web.xml, servlet-context.xml, root-context.xml 설정을 위한 설정파일 WAS 구동 시 이 파일을 통해 웹애플리케이션을 설정 root-context나 servlet-context파일 등 각종 설정파일 정의 스프링이 관리하는 빈들이 담겨있는 컨테이너 Controller, View, Intercepter, 어노테이션 관련 설정 JSP 관련 객체 Request 처리 관련 어노테이션 URL root-context 참조 가능 root-context에... 독학스프링독학 [Junit] @BeforeEach, @BeforeAll, @AfterEach, @AfterAll에 대해 알아보자 토비의 스프링 스터디를 진행하며 2장에서 더 알아보고 싶은 내용으로 위와 같은 주제를 정했다. 테스트를 수행하는 데 필요한 정보나 오브젝트를 픽스처라고한다. 테스트 클래스에 있는 어떤 테스트를 처음 실행하기 전 한 번만 실행된다. @BeforeEach == @Before 현재 클래스의 각 @Test, @RepeatedTest, @ParameterizedTest 또는 @TestFactory 메... @BeforeEach@BeforeAllafterall테스트JUnit5afterEach스프링@BeforeAll 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 [ 기본 기능 ] HTTP 요청 메시지 - JSON HttpServletRequest 의 request.getParameter() 를 사용하면 다음 두가지 요청 파라미터를 조회할 수 있다. 요청 파라미터와 다르게, HTTP 메시지 바디를 통해 데이터가 직접 데이터가 넘어오는 경우는 @RequestParam , @ModelAttribute 를 사용할 수 없다. HTTP 메시지 바디의 데이터를 InputStrea... MVC스프링SpringMVC 타임 리프 기본 기능 자바스크립트 객체 프로퍼티 접근 처럼 할 수 있다 th:with 를 사용하면 지역변수는 선언된 태그안에서만 사용 가능하다 타임리프 유틸리티 객체 경로 변수 + 쿼리 파라미터 ex) <span th:text="hello"> ex) <span th:text="hello world"> → <span th:text="'hello world'"> ex) <span th:text="|hello ${da... MVC2자바스프링타임리프MVC2 DI - XML 설정 방법 코드 di-xml 예제 프로젝트 구성 di-xml 예제 프로젝트 만들기 자바 버전 설정 di-xml 프로젝트 환경 : POM.xml spring-context -> Spring 프레임워크 버전 src/main/resources/applicationContext.xml 생성 src/main/resources/applicationContext.xml 네임스페이스 추가 beans 네임 스페이스 : 빈(... didi설정방법스프링di [토비의 스프링] - 템플릿 템플릿이란 바뀌는 성질이 다른 코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법 위의 코드는 .close()를 통해 자원을 반납하기 전에 예외가 발생하면 리소스가 정상적으로 반환되지 않을 수 있다. 따라서 예외가 발생해도 정상적으로 자원을 반납할 수 있도록 아래와 ... 템플릿코드스쿼드토비의스프링스프링스프링 자바 ORM 표준 JPA 프로그래밍 - 단방향 연관관계, 연관관계 사용 테이블 : 외래 키를 사용해서 관계를 맺음 단방향 관계 : 회원 -> 팀 or 팀 -> 회원 양방향 관계 : 회원 -> 팀 and 팀 -> 회원 회원과 팀의 관계를 통해 다대일(N:1) 단방향 관계를 알아보자 객체 연관관계 회원 객체는 Member.team 필드(멤버변수)로 팀 객체와 연관관계를 맺음. 테이블 연관관계 회원 테이블은 TEAM_ID 외래 키로 팀 테이블과 연관관계. 회원 테이블... 자바ORMJPA스프링JPA 스프링 핵심 원리 2장 하지만 기존에 만들었던 AppConfig역시 OCP와 DIP를 만족하는 컨테이너 역할을 충실히 수행한다. 스프링 적용하기 기존에 만들었던 AppConfig 클래스에 @configuration과 @Bean만 붙여주면 스프링 빈에 등록되어 사용할 수 있다. 스프링 컨테이너를 통해 필요한 객체를 찾을 수 있는데, applicationContext.getBean() 메소드로 찾을 수 있다. 스프링 ... Spring스프링Spring 👉포스메뉴 개수 변경 정말로 프로젝트하면서 이부분을 하면서 아주 고통스러웠던 기억이지만, 이상하게 글을 작성하는 지금도 선명하다. 목적: 갯수를 변경했을 때 주문개수와 결제금액이 변경한 값이 들어가야된다. 그렇게 하기 위해서는 처음에 입력 되있는 개수 값을 담을 수만 있다면 처리 할 수 있다. 하지만 내가 개수를 클릭하게 되면 내가 변경한 값에서만 담을 수 있었지, 그전 값을 담는 데 계속 실패했다. 그렇게 3시... 스프링프로젝트블루보틀블루보틀 [인프런_스프링입문]섹션 6. 스프링 DB 접근 기술 데이터베이스 파일을 생성하면(jdbc:h2:~/test), 데이터베이스가 정상 생성된다. build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 스프링 부트 데이터베이스 연결 설정 추가 Jdbc 회원 리포지토리 스프링 설정 변경 스프링 부트는 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어둔다. 회원 서비스 스프링 통합 테스트 ... 스프링인프런스프링입문스프링 서버 설계 키워드 : RestController, Service, Repository, RequestDto - domain 패키지 & 클래스 만들기 - Timestamped 상속 - Repository 인터페이스 만들기 - RequestDto 클래스 만들기 - service 패키지 & Service 클래스 - controller 패키지 & Controller 클래스... 서버API스프링웹API [인프런_스프링 핵심 원리-기본편]섹션 1. 객체 지향 설계와 스프링 ㆍ자바 언어의 가장 큰 특징 - 객체 지향 언어 ㆍ스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 ㆍ다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경할 수 있다. ㆍ인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. ㆍ클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. 구현을 편리하게 변경할 수 있다. ㆍ... 스프링스프링핵심원리인프런스프링 0909 TIL [그리디] 프로그래머스 조이스틱 문제 해결 특이점 1. 상하는 아스키코드를 이용 2. 좌우는 왼쪽에서 오른쪽으로 이동한 경우와 연속으로 A가 나타난 경우를 계속 갱신 2번에 대한 문제 설명 코드 참고한 블로그 웹의 구성 요소 : HTTP, URI, HTML URI : 기본 URI Scheme + 호스트명 + Path로 구성 scheme : http host : blog.example.com ... TIL스프링알고리즘서블릿TIL 토비의 스프링 Chapter 6.3.1 ~ 6.3.3 정리 데코레이터 패턴은 타깃에 부가적인 기능을 런타임 시에 다이내믹하게 부여해주기 위해 프록시를 사용하는 패턴을 말한다. 데코레이터 패턴에서는 같은 인터페이스를 구현한 타겟과 여러 개의 프록시를 사용할 수 있다. UserService 인터페이스를 구현한 타킷인 UserServiceImpl에 트랜잭션 부가기능을 제공해주는 UserServiceTx를 추가한 것도 데코레이터 패턴을 적용한 것이라고 볼 ... 스프링스프링 스프링 설정 파일(xml)의 분리 스프링 설정 파일이 너무 길어질 경우 효율적으로 관리하기 위해 스프링의 설정 파일을 분리할 수 있다. 일반적으로는 기능별로 분리한다. 위 그림처럼 전체 파일을 3개로 분리했다면, 이런식으로 설정 파일들을 배열로 선언하고 불러오면 된다. 다른 방법으론 import 태그를 이용할 수 있다.... 스프링스프링