일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C언어
- 플러터
- Flutter
- 스프링
- php 프로그래밍 입문 솔루션
- 백준
- 페이코 초대코드
- php 프로그래밍
- 페이코 친구코드
- 자바
- programmers
- 플러터 개발환경 설정
- php
- Java
- 배열
- 페이코 추천인
- 자바 스프링
- php 프로그래밍 입문
- spring
- php 프로그래밍 입문 문제풀이
- php 프로그래밍 입문 3판
- 한정 분기
- php 프로그래밍 입문 연습문제
- 최단 경로
- 페이코 추천인코드
- JAVA SPRING
- php 프로그래밍 입문 예제
- C
- SWEA
- 파이썬
- Today
- Total
목록Java Spring/스프링 입문 (27)
ImJay
[Java Spring] 1-26. 마무리 1. 지금까지 스프링으로 웹 애플리케이션을 개발하는 방법에 대해서 얇고 넓게 학습했다. 이제부터는 각각의 기술들을 깊이있게 이해해야 한다. 거대한 스프링의 모든 것을 세세하게 알 필요는 없다. 우리는 스프링을 만드는 개발자가 아니다. 스프링을 활용해서 실무에서 발생하는 문제들을 잘 해결하는 것이 훨씬 중요하다. 따라서 핵심 원리를 이해하고, 문제가 발생했을 때, 대략 어디쯤 부터 찾아들어가면 될지, 필요한 부분을 찾아서 사용할 수 있는 능력이 더 중요하다.
[Java Spring] 1-25. AOP 적용 1. 이러한 상황에 필요한 기술을 AOP (Aspect Oriented Programming) 라고 한다. [Java Spring] 24. AOP가 필요한 상황 [Java Spring] 24. AOP가 필요한 상황 1. 모든 메소드의 호출 시간을 측정하고 싶다면? 직장 상사가 갑작스럽게 프로그램의 모든 메소드들의 호출 시간을 측정해오라는 업무지시를 한다. 프로그램에 develop247.tistory.com 2. 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 을 분리하는 기술을 말한다. 3. 시간 측정 로직을 한군데에 모으고, 내가 원하는 곳에 적용시키는 것을 가능하게 만드는게 AOP 이다. 4. ma..
[Java Spring] 1-24. AOP가 필요한 상황 1. 모든 메소드의 호출 시간을 측정하고 싶다면? 직장 상사가 갑작스럽게 프로그램의 모든 메소드들의 호출 시간을 측정해오라는 업무지시를 한다. 프로그램에 수천개의 메소드들이 존재한다고 가정하자. 우리는 수천개에 해당하는 메소드들의 처음과 끝마다 시간을 측정해주는 함수를 작성해야 한다. 그렇게 업무를 끝내서 초단위로 측정을 완료하니, 상사가 초단위는 정확히 확인이 안된다며 ms 단위로 측정을 다시 해보라고 한다. 우리는 수천개의 메소드를 또 다시 수정하는 과정을 반복해야 한다. 2. 상사의 요구사항대로 시간 측정 기능을 추가했다고 가정해보자 (MemberService.java) package hello.hellospring.service; impor..
[Java Spring] 1-23. 스프링 데이터 JPA 1. 스프링 부트와 JPA만 사용해도 개발 생산성이 정말 많이 증가하고, 개발해야할 코드도 확연히 줄어든다. 2. 여기에 스프링 데이터 JPA를 사용하면, 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있다. 그리고 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. 3. 스프링 부트와 JPA라는 기반 위에, 스프링 데이터 JPA라는 환상적인 프레임워크를 더하면 개발이 정말 즐거워진다. 지금까지 조금이라도 단순하고 반복이라 생각했던 개발 코드들이 확연하게 줄어든다. 4. 따라서 개발자는 핵심 비즈니스 로직을 개발하는데, 집중할 수 있다. 실무에서 관계형 데이터베이스를 사..
[Java Spring] 1-22. JPA 1. 앞서 기존 JDBC 에서 JDBC Template 로 변경 이후 개발해야 되는 코드가 훨씬 많이 줄었었다. 2. 그러나, 아직 해결하지 못한 문제가 있었다. SQL 은 개발자가 직접 작성해야된다는 점이었다. 3. 그러나 JPA 를 사용하면, SQL 쿼리도 JPA가 자동으로 해결해준다. 4. JPA의 특징 - JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다. - JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환을 할 수 있다. - JPA를 사용하면 개발 생산성을 크게 높일 수 있다. 5. bundle.gradle > dependencies 에 해당 코드를 추가한다. impleme..
[Java Spring] 1-21. JDBC Template 1. 스프링 JdbcTemplate과 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해준다. 하지만 SQL은 직접 작성해야 한다. 2. src > main > java > hello.hellospring > repository > 새로 만들기 > 클래스 > JdbcTemplateMemberRepository 생성 3. 코드 작성 package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc...
[Java Spring] 1-20. 스프링 통합 테스트 1. src > test > java > hello.spring > service > MemberServiceTest 복사 + 붙여넣기 > MemberServiceIntegrationTest 클래스 생성 2. 코드 작성 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.juni..
[Java Spring] 1-19. 순수 JDBC 1. 이제 어플리케이션과 DB를 연동해서 어플리케이션에서 SQL 문을 작성하여 DB에 데이터를 저장해보는 작업을 수행해보자. 2. 주의! 이렇게 JDBC API로 직접 코딩하는 것은 15년 전의 이야기이다. 따라서 고대 개발자들이 이렇게 고생하고 살았구나 생각하고, 참고만 하며 넘어가자. 3. bundle.gradle dependencies 에 아래 코드를 추가하자. implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' 4. src > resources > application.properties 에 해당 코드를 작성한다. sprin..
[Java Spring] 1-18. H2 데이터베이스 설치 1. 이전 글에서처럼 서버를 내리면 회원데이터가 메모리에서 다 사라지는 불상사를 막으려면, 데이터베이스에 데이터를 저장해야 한다. 이를 위해 우리는 아주 쉽고 간단한 H2 데이터베이스를 설치해보려고 한다. 2. H2 데이터베이스 홈페이지로 이동한다. H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executa..
[Java Spring] 1-17. 회원 웹 기능 - 조회 1. MemberController.java 에 코드 추가 @GetMapping("/members") public String list(Model model) { List members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } 2. templates > members > memberList.html 생성 및 코드 추가 # 이름 - th:each 는 loop 문이다. ( java 의 for each 와 같다. ) 3. 빌드 후 결과 확인 ( 회원가입 > spring1, spring2 등록 ) - th:each..