반응형

분류 전체보기 136

스프링 MVC 웹 페이지 만들기

우선 프로젝트 생성을 해보도록 하자.  Generate해준 후 intellij로 build.gradle을 실행시킨다.  Welcome 페이지(index)페이지를 만들어보자./resources/static 및에 index.html 파일을 생성하자. 상품 관리 상품 관리 - 기본  서버를 재실행하고 URL을 접속해보면 다음과 같은 결과를 확인할 수 있다.  href 태그를 눌러보면 localhost:8080/basic/items로 이동하는것을 볼 수 있다.   요구사항 분석상품을 관리할 수 있는 서비스를 만들 예정이다. 요구사항은 다음과 같다. 상품 도메인 모델- 상품 ID- 상품명- 가격- 수량 상품 관리 기능- 상품 목록- 상품 상세- 상품 등록..

공부/Spring 2025.03.25

스프링 MVC - 기본 기능

https://surrealcode.tistory.com/129 스프링 MVC - 구조 이해https://surrealcode.tistory.com/128 MVC 프레임워크 만들기프론트 컨트롤러 패턴 소개https://surrealcode.tistory.com/127 서블릿, JSP, MVC 패턴간단한 웹 애플리케이션을 만들어 보도록 하자.서블릿으로 만든 후 Jsurrealcode.tistory.com스프링 MVC의 기본 기능을 알아보기 전에 스프링MVC의 구조에 대해 숙지하여 보자.  우선 새로 프로젝트를 하나 생성한다.https://start.spring.io/ War 대신 Jar를 선택해주어야 한다.Jar를 사용하면 항상 내장 서버(톰캣등)을 사용하고 'webapp' 경로도 사용하지 않는다.. 내장..

공부/Spring 2025.03.20

스프링 MVC - 구조 이해

https://surrealcode.tistory.com/128 MVC 프레임워크 만들기프론트 컨트롤러 패턴 소개https://surrealcode.tistory.com/127 서블릿, JSP, MVC 패턴간단한 웹 애플리케이션을 만들어 보도록 하자.서블릿으로 만든 후 JSP로 개선을 해본 뒤 MVC 패턴을 적용시켜본다. 회surrealcode.tistory.com 스프링 MVC를 이해하기 전에 이전 포스팅에서 직접 만든 MVC 프레임워크를 참고하도록 하자.   스프링 MVC 전체 구조직접 만든 MVC 프레임워크와 스프링 MVC를 비교해보도록 하자.  기존 만들었던 MVC 프레임워크와 사실 스프링MVC 구조는 거의 동일하다(약간 이름에 차이가 있을 뿐) 직접 만든 프레임워크 -> 스프링MVC 비교- Fr..

공부/Spring 2025.03.17

MVC 프레임워크 만들기

프론트 컨트롤러 패턴 소개https://surrealcode.tistory.com/127 서블릿, JSP, MVC 패턴간단한 웹 애플리케이션을 만들어 보도록 하자.서블릿으로 만든 후 JSP로 개선을 해본 뒤 MVC 패턴을 적용시켜본다. 회원 관리 웹 애플리케이션 요구사항회원 정보이름 : username나이 : age 기능 요surrealcode.tistory.com 프론트 컨트롤러 패턴을 도입하기 전에는 컨트롤러마다 공통로직을 전부 호출해주었어야 했다.(이전 포스팅 참조) 이전 포스팅에서는 포워드가 중복됐었고, viewPath가 중복 됐었고, 사용하지 않는 코드들을 만들었어야 했다. 프론트 컨트롤러를 도입하면(Front Controller도 서블릿이다.)프론트 컨트롤러에 공통 로직을 다 몰아놓고, 각각 ..

공부/Spring 2025.03.15

서블릿, JSP, MVC 패턴

간단한 웹 애플리케이션을 만들어 보도록 하자.서블릿으로 만든 후 JSP로 개선을 해본 뒤 MVC 패턴을 적용시켜본다. 회원 관리 웹 애플리케이션 요구사항회원 정보이름 : username나이 : age 기능 요구사항- 회원 저장- 회원 목록 조회 우선 회원 객체를 만들어준다.@Getter@Setterpublic class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age; }} 이후 회원을 저..

공부/Spring 2025.03.12

서블릿(Servlet)

참고 : 서블릿 JSP 기술은 거의 사장되었다고 봐도 무방한 기술들이다. 하지만 MVC 패턴이 나오게 된 계기가 되는 것들이니 만큼 학습을 하고 넘어가려 한다.+ 아직까지 가끔? JSP를 쓰는 기업들이 보이기는 하는거 같다. 우선 스프링 부트를 사용해 스프링 프로젝트를 생성하자.https://start.spring.io/ Dependencies는 Spring Web, Lombok을 선택하여 만든다.packaging은 war를 선택한다. JSP를 실행하기 위해 필요하다.Hello 서블릿스프링 부트 환경에서 서블릿을 등록하고 사용해보자. *참고 : 서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 다음, 톰캣 서버를 실행하면 된다. 하지만 이과정은..

공부/Spring 2025.03.11

웹 애플리케이션의 이해

웹 서버, 웹 애플리케이션 서버웹 : 웹은 HTTP 통신을 기반으로 통신한다. 모든 것이 HTTP이다.HTTP 메시지에 모든 것을 담아 전송한다.1. HTML, TEXT2. IMAGE, 음성, 영상, 파일3. JSON, XML(API)4. 서버간의 데이터를 주고 받을때도 대부분 HTTP 사용--> 거의 모든 형태의 데이터가 전송 가능하다. 웹 서버(Web Server)- HTTP 기반으로 동작한다.- 정적 리소스(파일)를 제공하고, 기타 부가 기능이 있다.- 정적(파일) HTML, CSS, JS, 이미지, 영상 등이 정적 파일이다.- ex)NGINX, APACHE  웹 애플리케이션 서버(WAS - Web Application Server)- HTTP 기반으로 동작한다.- 위의 웹 서버 기능 포함 + 정적..

공부/Spring 2025.03.10

Spring JPA과 QueryDSL

Spring JPA스프링 데이터 JPA는 JPA를 사용할때 지루하게 반복하는 코드를 자동화 해준다. 이미 라이브러리는 포함되어있다. MemberRepository를 스프링 데이터 JPA로 변경해보자.public interface MemberRepository extends JpaRepository { //select m from Member m where m.name = ? List findByName(String name);}public class MemberService { private final MemberRepository memberRepository; //회원 가입 @Transactional public Long join(Member member) { ..

공부/Spring Boot 2025.02.20

API 개발 고급 - 실무 필수 최적화

OSIV와 성능 최적화Open Session In View : 하이버 네이트Open EntityManager In View : JPA(관례상 OSIV라고 한다.) spring.jpa.open-in-view : JPA 기본값 애플리케이션을 동작하면 시작지점 로그에 warn이 하나 뜨게 되는데, WARN 6920 --- [  restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. spring.jpa.open-in-view is enabled by default라는 warn 로그가 출력되는 것을 알 수 있다. OSIV 전략은 트랜잭션 시작(서비스계층의 @Transactional)..

공부/Spring Boot 2025.02.19

API 개발 고급 - 컬렉션 조회 최적화

https://surrealcode.tistory.com/121 API 개발 고급 - 지연 로딩과 조회 성능 최적화https://surrealcode.tistory.com/120 API 개발 고급 - 준비현업에서는 API 개발을 한 이후 성능이 나오지 않아 튜닝을 하기도 하는데 보통은 아래와 같은 문제를 지키지 않아 발생한다.- 지연로딩, 조회 성surrealcode.tistory.com앞서 본 API 개발은 xToOne 관계만 있는 개발이었다. 이번에는 컬렉션인 OneToMany 를 조회하고, 최적화를 진행해 볼 예정이다. 주문내역에서 추가로 주문한 상품 정보를 추가로 조회하자.Order 기준으로 컬렉션인 'OrderItem'과 'Item'이 필요하다. 컬렉션 조회 같은 경우에는 DB 입장에서 뻥튀기가..

공부/Spring Boot 2025.02.19
반응형