티스토리

유정잉
검색하기

블로그 홈

유정잉

yujung1339.tistory.com/m

유정♡ 님의 블로그입니다.

구독자
8
방명록 방문하기

주요 글 목록

  • 🎀 스프링 부트 [ 게시판 만들기 ] [ CRUD 게시판 만들기 ]   • 목록 화면(번호 1) - 전체 목록을 페이징 처리해서 조회할 수 있고, 제목/내용/작성자 항목으로 검색 과 페이징 처리를 가능하게 합니다.   • 등록 화면(번호 2) - 새로운 글을 등록할 수 있고, 등록 처리 후 다시 목록 화면으로 이동하게 됩니다.   • 조회 화면(번호 3) - 목록 화면에서 특정한 글을 선택하면 자동으로 조회 화면으로 이동합니다.     조회 화면에서는 수정/삭제가 가능한 화면(번호 4)으로 버튼을 클릭해서 이동할 수 있습니다.   • 수정/삭제 화면(번호 4)- 수정 화면에서 삭제가 가능하고 삭제 후에는 목록 페이지로 이동합니다.      글을 수정하는 경우에는 다시 조회 화면(번호 2)으로 이동해서 수정된 내용을 확인할 수 있습니다.기능U.. 공감수 0 댓글수 0 2024. 7. 10.
  • 🎀 스프링 부트 [ JPA, Repository, @Query ] - JPA를 통해서 관리하게 되는 객체(이하 엔티티객체(Entity Object))를 위한 엔티티 클래스   - 엔티티 객체들을 처리하는 기능을 가진 Repository  [ @GeneratedValue(strategy = GenerationType.IDENTITY) ]AUTO(default) : JPA 구현체(스프링부트에서는 Hibernate)가 생성 방식을 결정IDENTITY : 사용하는 데이터베이스가 키 생성을 결정 MySQL이나 MariaDB의 경우 auto increment 방식을 이용SEQUENCE : 데이터베이스의 sequence를 이용해서 키를 생성. @SequenceGenerator와 같이 사용TABLE : 키 생성 전용 테이블을 생성해서 키 생성 @TableGenerator와 함께 사용.. 공감수 0 댓글수 0 2024. 7. 9.
  • 🎀 스프링부트 SpringBoot 파일 생성 1) start.spring.io로 SpringBoot Project 생성     -> Spring Boot Dev Tools, Spring Web, Lombok, MySQL Driver, Thymeleaf, Psring Data JAP 2) application.properties 파일에 DB 연결 설정 spring.datasource.url=jdbc:mysql://localhost:3306/yujungspring.datasource.username=rootspring.datasource.password=00000000spring.jpa.hibernate.ddl-auto=update 3) controller와 html 파일 생성 -> html에서 Thymeleaf를 통해 데이터 값 출력    -> Th.. 공감수 0 댓글수 0 2024. 6. 18.
  • 🎀 스프링 레거시 흐름과 코드 예시 전체적인 흐름사용자 요청 (Client Request)사용자가 웹 브라우저를 통해 특정 URL을 요청합니다.Controller요청이 들어오면 스프링 프레임워크는 적절한 컨트롤러로 요청을 전달합니다.컨트롤러는 URL 요청을 매핑하고 요청을 처리합니다. 예를 들어, 사용자가 /user/list URL을 요청하면 UserController가 이를 처리합니다.Service컨트롤러는 비즈니스 로직을 처리하기 위해 서비스 계층을 호출합니다. 서비스 계층은 비즈니스 로직을 담당합니다.예를 들어, UserController는 UserService를 호출하여 사용자 목록을 가져옵니다.Mapper (Interface 및 XML)서비스 계층은 데이터베이스와 상호 작용하기 위해 매퍼를 호출합니다. 매퍼는 MyBatis와 같은.. 공감수 0 댓글수 0 2024. 6. 15.
  • ⭐️ @PostConstruct와 @PreDestroy 빈의 초기화 + 빈의 소멸 @PostConstruct, @PreDestroy 이 두 애노테이션을 사용하면 가장 편리하게 초기화와 종료를 실행할 수 있다. [ @PostConstruct, @PreDestroy 애노테이션 특징 ]최신 스프링에서 가장 권장하는 방법이다. 애노테이션 하나만 붙이면 되므로 매우 편리하다.패키지를 잘 보면 `javax.annotation.PostConstruct` 이다. 스프링에 종속적인 기술이 아니라 JSR-250 라는 자바 표준이다. 따라서 스프링이 아닌 다른 컨테이너에서도 동작한다.  컴포넌트 스캔과 잘 어울린다.유일한 단점은 외부 라이브러리에는 적용하지 못한다는 것이다. 외부 라이브러리를 초기화, 종료 해야 하면 @Bean의 기능을 사용하자.  [ 정리 ]@PostConstruct, @PreDestr.. 공감수 0 댓글수 0 2024. 5. 29.
  • ⭐️ Controller와 RestController의 차이점 @Controller와 @RestController는 둘 다 스프링 MVC 애플리케이션에서 사용되는 어노테이션으로, HTTP 요청을 처리하는 컨트롤러를 정의할 때 사용됩니다. 그러나 두 어노테이션은 약간의 차이가 있습니다. [ @Controller ]@Controller 어노테이션이 붙은 클래스는 전통적인 스프링 MVC의 컨트롤러로 간주됩니다.주로 HTML 뷰를 반환하는 데 사용됩니다.메서드가 String, ModelAndView, View 등과 같은 HTML 뷰를 반환하도록 정의될 수 있습니다.기본적으로 데이터를 JSON이나 XML 형식으로 반환하지 않습니다.import org.springframework.stereotype.Controller;import org.springframework.web.b.. 공감수 0 댓글수 0 2024. 5. 29.
  • ⭐️ @Componentscan과 @Configuration + @Bean의 차이점 @Componentscan과 @Configuration + @Bean은 비슷한 목적을 가지고 있지만 약간 다른 방식으로 작동합니다. [ @Componentscan ] 이 어노테이션은 Spring에게 특정 패키지 이하에서 컴포넌트를 찾아서 Bean으로 등록하라고 지시합니다. Spring은 해당 패키지와 그 하위 패키지를 스캔하여 @Component, @Repository, @Service, @Controller 등과 같은 어노테이션이 붙은 클래스를 찾아 빈으로 등록합니다.구성 요소 스캔은 스프링이 클래스 경로에서 구성 요소를 찾아서 자동으로 빈으로 등록하는 메커니즘입니다. 구성 요소는 주로 @Component 어노테이션이 붙은 클래스들을 말합니다. 그러나 @ComponentScan은 @Component 외.. 공감수 0 댓글수 0 2024. 5. 29.
  • ⭐️ Model Attribute와 Request Parameter의 차이점 + RequestBody 모델 어트리뷰트(Model Attribute)와 리퀘스트 파라미터(Request Parameter)는 웹 애플리케이션에서 데이터를 전달하는 방식에 있어서 차이가 있습니다. [ 모델 어트리뷰트 (Model Attribute) ]모델 어트리뷰트는 컨트롤러에서 뷰로 데이터를 전달하는 데 사용됩니다.주로 컨트롤러에서 처리한 결과나 데이터를 뷰에 전달할 때 사용됩니다.Spring MVC의 Model 객체를 통해 뷰로 전달됩니다.뷰 템플릿(JSP, Thymeleaf 등)에서는 모델 어트리뷰트에 접근하여 화면에 데이터를 표시합니다.@Controllerpublic class MyController { @GetMapping("/example") public String example(Model model) {.. 공감수 0 댓글수 0 2024. 5. 29.
  • 🎀 스프링 기본 5 - 의존관계 자동 주입 [ 다양한 의존관계 주입 방법 ]1. 생정자 주입 2. setter 주입(=수정자 주입) 3. 필드 주입 4. 일반 메서드 주입 1) 생성자 주입 : 생성자를 통해서 의존 관계를 주입 받는 방법    특징 : 생성자를 호출 시점에 딱 1번만 호출 되는 것리 보장 됨. "불변, 필수" 의존관계에 사용 (=공연 중간에 배우가 바뀌면 안 됨, final)    중요 : 만약 생성자가 딱 1개만 있다면 @Autowired를 생략해도 된다 !! (생성자가 2개 이상이면 안 됨)@Componentpublic class OrderServiceImple implements OrderService{ private final MemberRepository memberRepository; //final이 있으면 무조.. 공감수 0 댓글수 0 2024. 5. 28.
  • 🎀 스프링 기본 4 - 컴포넌트 스캔 @ComponentScan : 클래스를 스캔해서 스프링 빈으로 등록해줌 (기존AppConfig와 다르게 @Bean으로 등록 X)컴포넌트 스캔을 사용하면 `@Configuration` 이 붙은 설정 정보도 자동으로 등록되기 때문에, AppConfig, TestConfig 등 앞서 만들어두었던 설정 정보도 함께 등록되고, 실행되어 버린다. 그래서 `excludeFilters` 를 이용해서 설정정보는 컴포넌트 스캔 대상에서 제외했다. 보통 설정 정보를 컴포넌트 스캔 대상에서 제외하지는 않지만, 기존 예제 코드를 최대한 남기고 유지하기 위해서 이 방법을 선택했다.  1) AutoAppConfig에 @ComponentScan 등록package hello.core;import org.springframework.c.. 공감수 0 댓글수 1 2024. 5. 27.
  • 🎀 스프링 기본3 - 싱글톤 [ 공감수 0 댓글수 0 2024. 5. 25.
  • 🎀 스프링 기본 2 - 빈 등록과 조회 @Test, xml ▶▷ 이전 시간에는 AppConfig를 사용해서 직접 조회했지만, 지금부터는 스프링 컨테이너를 통해서 필요한 스프링 빈(=객체)를 찾는다.       applicationContext.getBean() 메서드를 사용해서 찾을 수 있다. 1) AppConfig 클래스에 애플리케이션 설정 정보를 @Configuration 설정, 각 메서드에 @Bean 설정 -> 스프링 컨테이너에 등록 됨package hello.core;import hello.core.discount.DiscountPolicy;import hello.core.discount.FixDiscountPolicy;import hello.core.discount.RateDiscountPolicy;import hello.core.member.Membe.. 공감수 0 댓글수 1 2024. 5. 24.
  • 🎀 스프링 기본 1 [ 비즈니스 요구사항과 설계 ]    - 회원      회원을 가입하고 조회할 수 있다.      회원은 일반과 VIP 두 가지 등급이 있다.      회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정)   - 주문과 할인 정책     회원은 상품을 주문할 수 있다.     회원 등급에 따라 할인 정책을 적용할 수 있다.      할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다.       회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고싶다. 최악의 경우 할인을 적용하지 않을 수 있다. (미확정) 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지금.. 공감수 0 댓글수 0 2024. 5. 23.
  • 🎀 AOP [ AOP란 ? ]AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다.여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다.  [ AOP가 필요한 상황 ]모든 메소드의 호출 시간을 남긴다면 ? 메서드가 1000개라면 메스데 1000개의 시작과 끝에 다 호출 메서드를 넣어야 함 근데 초단위로 했더니 갑자기 밀리세컨드로 다시 바꾸래 ! 그럼 또 더 복잡해진다 !! 그래서 AOP에서 호출 시간을 남기는 메서드를 만들어서 각각의 Controller & Service & Repository에 적용해주면 됨즉, A.. 공감수 0 댓글수 0 2024. 5. 22.
  • 🎀 JDBC 연결 [ JPA ] 1) 스프링 컨테이너와 DB까지 연결한 통합 @Test (그치만 통합보단 순수한 단위 Test가 더 좋은 테스트임 !)   @SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다.   @Transactional : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고,                                   테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.                                   즉, 전에 배웠던 @Aftereach clear가 필요 없음 package hello.hellospring.service; import hello.hellosprin.. 공감수 0 댓글수 0 2024. 5. 21.
  • 🎀 H2 데이터베이스 설치 및 실행 스프링 부트 3.x를 사용하면 **2.1.214 버전 이상** 사용해야 한다.https://www.h2database.com/html/download-archive.html Archive Downloads www.h2database.com   1) 최초에는 데이터베이스 파일을 만들어야 함 2) [ JDBC URL : 내 파일경로 ] 사용자명 비밀번호 다 그래로 두고 연결 누름  3) ll -> test.mv.db 파일이 제대로 만들어 졌는지 확인    4) 만약에 오류가 뜬다면 링크 앞에 아이피만 지우던가 혹은 rm test.mv.db로 파일 지우고 처음부터(=파일생성부터) 다시 해보기 !  5) [ JDBC URL : 내 파일경로 ] => jdbc:h2:tcp://localhost/~/test 로 설정 공감수 0 댓글수 0 2024. 5. 21.
  • 🎀 스프링 환경 설정, 간단한 회원가입 빌드 작성 [ spring project 생성 ] 1. start.spring.io 사이트에서 project 생성    Gradle - Groovy 선택 버전은 3.0 이상 사용. Group은 package명 Arifact는 project명    Dependencies는 내가 사용할 라이브러리 선택후 GENERATE2. 1번에서 생성한 project 파일 압축 풀기 후 -> build.gradle 선택 후 Open 3. 요즘에는 project 선택하면 main test 폴더가 자동으로 나눠져서 생성 됨     test코드가 요즘 개발 트렌드에서 중요함 !!     resource에는 실제 자바 코드파일을 제외한 설정파일이나 xml이나 properties가 들어가는 폴더 (=즉, 자바파일제외한 나머지)     bui.. 공감수 0 댓글수 0 2024. 5. 19.
  • 🎀 MVC 공부 정리 🎀 [ Controller와 RestController의 차이 ] @Controller : return에 입력한 경로 출력 만약 문자열로 출력하고 싶다면 @ResponseBody 사용 ! @RestController : ModelAndView를 사용해야지 원하는 페이지 호출 ! 사용 안 하면 return에 입력한 문자열 그대로 출력[ RestController ModelAndView 사용법 + id에 값 추가하는 법 ]public ModelAndView view(ModelAndView mv){ mv.addObject("id","kimhyeonMin"); mv.setViewName("index"); return mv;}    [ @RequestParam 과 @RequestBody의 차이점 ]@.. 공감수 0 댓글수 0 2024. 5. 18.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.