개발스터디 (18) 썸네일형 리스트형 [MSA 1.0] (1). Python 설치 및 장고 개발환경 구성 반갑습니다. 여러분 우선 첫번째로, 장고 프레임워크를 활용하여, 전체적인 backend 기능들을 구현 하기 위해 개발환경을 구축하도록 하겠습니다. 윈도우 유저들이 많을것이라고 생각하여, 윈도우 10 pro에 맞게 글을 작성하였고, MAC 유저분들은 번거롭더라도 검색을 활용하여 환경구성을 해주시면 되겠습니다. 1. Python 설치 https://www.python.org/ 해당 페이지에 접속하여 python을 설치합니다. 파이썬 버전 : 3.10.4 (Windows installer (64-bit)) 설치 할 때 Add Python 3.10 to PATH 적용 시켜놓으면 어느 디렉토리에서나 python 명령어 적용 가능! C:\Users\pahkey> python -V Python 3.10.4 2. 가상.. [MSA 1.0] 컨테이너를 활용한 MSA 개발 # MicroServices # MSA 1. MSA 란 무엇일까? 애플리케이션의 복잡성이 증가됨에 따라 디자인 패턴도 변화한다. 1개의 서버에 1개의 어플리케이션이 가동되던 서버로 모든 어플리케이션이 가동되던 시대는 어땠을까? 과거의 레거시 어플리케이션을 모놀리스 아키텍처라 부른다. Mono라는 단어 자체가 1개의 라는 의미를 내포하기 때문에, 이름 에서부터 예측할수 있지만 한개의 서버에서 어플리케이션이 가동된다라고 이해 하면 된다. 모놀리스에는 어떠한 문제점이 있는지 살펴보자. 우선 장애 측면에서 봤을때 일부분의 장애가 전체 어플리케이션의 장애로 확산된다는 가장 큰 단점이 있다. 그 예를 찾아보면, 2000년대 초반으로 돌아가는데.. 우리가 잘 아는 AWS 역시도 과거에는 모놀리스 아키텍처에서 서비스를.. [JPA] 5. JPA Repository 인터페이스 5-1. Repository란? Spring Data JPA에서는 여러 종류의 인터페이스의 기능을 통해서 JPA 관련 작업을 별도의 코드 없이 처리할 수 있게 지원합니다. 예를들면 인터페이스의 메서드를 호출하는 형태에 + 기능에 따라서 상속 구조로 추가적인 기능을 제공합니다. 이때 사용하는 인터페이스를 Repository라고 합니다. CRUD 작업 페이징 정렬 Repository CrudRepository PagingAndSortRepository JpaRepository 5-2. Jpa Repository 사용하기 사실 Repository를 생성할때는 인터페이스를 만들고, JpaRepository를 상속 하는것 만으로도 작업이 끝납니다. package com.example.demo; import org.. [JPA] 4. JPA와 DB의 동작 관계 springboot의 최고장점은 스프링보다 훨씬 환경설정이 쉽다는것입니다. 사실 application.properties 파일을 사용하는것도 굉장히 획기적인 기술적 발전이였는데, 저한테 익숙한 yaml 파일로도 설정을 할수 있다니!!!!!???? 너무 좋아. 자동으로 필요한 테이블을 생성하거나 JPA를 이용할때 발생하는 SQL등을 확인하기 위해서는 application.property 파일이나 application.yml에 추가 설정이 필요합니다. 구글링하면 간단하게 나오는데, 기본적으로 세팅해서 쓰는 부분은 위에꺼는, JPA 처리시에 발생하는 SQL을 보여줄지 결정하는 부분이고 옵션체크하게되면, 이런식으로 console에 출력되고, 로깅을 남길수 있네요. Hibernate: drop table if e.. [JPA] 3. 엔티티 클래스와 어노테이션 이번시간에는 실습을 통해서 JPA를 어떤 방식으로 사용하면 되는가에 대해서 알아보겠습니다. JPA에서는 이 2가지 요건만 생각하면 됩니다. jpa를 통해서 관리하게 되는 객체를 위한 엔티티 클래스 엔티티 객체들을 처리하는 기능을 가진 repository 이중에서 repository는 JPA에서 제공하는 인터페이스로 설계하는데 스프링 내부에서 자동으로 객체를 생성하고 실행하는 구조라 개발자 입장에서는 단순히 인터페이스를 하나 정의하는 작업만으로 충분합니다. 3-1. 엔티티 클래스 작성 예제 프로젝트에 'member' 패키지를 추가하고, Member라는 클래스를 만듭니다 package com.jojoldu.webservice.domain.member; import javax.persistence.*; @En.. [JPA] 2. 객체 매핑이란? 우선 JPA를 사용하기 위해서 예제를 만들어 보겠다. JPA란 한줄 요약하자면, DB와 JAVA가 서로 잘 어울릴수 있도록 매핑하는 작업을 해주는 녀석이다. 그렇다면, 레거시에서 VO 형태에서 이런식으로 데이터 바인딩을 하는 것은 모두에게 익숙할 것이다. String id; String username; //getter ,setter //to string 하지만, 이와 같이 데이터 바인딩을 하여 DAO 단에서 mybatis를 통해 sql매핑을 해주던 방식이 한단계 발전한것이 JPA 라고 생각을 하고 있다. 내가 이해한 대로는 그런거 같다. 그렇다면, 간단하게 예제를 좀 챙겨서 보면서 맛을 보자. JPA 란 녀석에 대해서. 여기 아주 간단한 Member라는 DB 테이블이 있다. # 회원 테이블 # CREA.. [JPA] 1. JPA란 어떤것인가? JPA ( Java Persistent API ) 란? 자바진영의 ORM 기술 표준이다. JPA는 애플리케이션과 JDBC 사이에서 동작한다. ORM( Object relational Mapping ) 은 말그대로 객체와 관계형 데이터베이스를 매핑해주는 기술을 뜻한다. 과거 Legacy 기준으로 옛날 이야기를 조금 해보자면, JDBC API는 레거시 형태의 JAVA에서 데이터베이스를 접근하는 기술이었다. public void add(User user) throws ClassNotFoundException, SQLException { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection c = DriverManager.getConnection("jdbc.. [프로젝트 개발환경 설치] 1. 개발환경 설치 - Springboot - JDK 1.8 - Springboot local Server - git - H2 DB - JPA - Swagger - JUnit - Spring Security # jojoldu 블로그 빌드 ( springboot, git , JPA, 테스트코드, swagger 사용법 숙지 ) 2. spring-petclinic 빌드 (JPA 심화내용, 테스트 코드 심화내용) 3. springboot 웹프로젝트 교재 따라하기 (프로젝트 마무리학습) 이전 1 2 3 다음