본문 바로가기
반응형

Back20

[DB] MyBatis build.gradle -> dependencies 안에 추가 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' apploication.properties 에 추가 (test > resoueces > application.properties 에도 추가) #MyBatis mybatis.type-aliases-package=hello.itemservice.domain mybatis.configuration.map-underscore-to-camel-case=true logging.level.hello.itemservice.repository.mybatis=trace src > main > java > hello.itemser.. 2023. 5. 9.
[DB] JdbcTemplate ✔ JdbcTemplate : SQL을 직접 사용하는 경우에 스프링이 제공하는 JdbcTemplate 은 아주 좋은 선택지다. JdbcTemplate 은 JDBC 를 매우 편리하게 사용할 수 있게 도와준다. • 장점 - 설정의 편리함 : 별도의 복잡한 설정 없이 바로 사용할 수 있다. - 반복 문제 해결 : JdbcTemplate 은 템플릿 콜백 패턴을 사용해서, JDBC 를 직접 사용할 때 발생하는 대부분의 반복 작업을 대신 처리해준다. 개발자는 SQL을 작성하고, 전달할 파라미터를 정의하고, 응답 값을 매핑하기만 하면 된다. • 단점 - 동적 SQL을 해결하기 어렵다. ✔ JdbcTemplate 설정하기 • build.gradle 의 dependencies 에 추가해야 할 것 //H2 데이터베이스 추.. 2023. 5. 8.
[DB] H2 데이터베이스 설치 https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp www.h2database.com Window Installer / All Platfoms 둘 중 원하는 거 다운 받으면 된다. 난 All Platforms.. 2023. 5. 4.
[Spring] 회원 관리 (2) - 서비스 개발 / test ✔ 회원 서비스 개발 hello.hellospring > service > MemberService - 회원가입기능 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); // 회원가입 public Long join(Member mem.. 2023. 4. 28.
[Spring] 회원 관리 (1) - repository / Test case ✔ 비즈니스 요구사항 정리 • 데이터: 회원ID, 이름 • 기능: 회원 등록, 조회 • 아직 데이터 저장소가 선정되지 않음 (가상의 시나리오) ➕ 일반적인 웹 애플리케이션 구조 • 컨트롤러 : 웹 MVC의 컨트롤러 역할 • 서비스 : 핵심 비즈니스 로직 구현 • 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 • 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 데이터베이스에 저장하고 관리됨 ✔ 회원 도메인과 리포지토리 만들기 domain > Member package hello.hellospring.domain; public class Member { private Long id; // 시스템이 저장하는 아이디 private String name; // 회원 이름 .. 2023. 4. 28.
[Spring] 스프링 웹 개발 기초 ✔ 프로젝트 생성 https://start.spring.io/ 인텔리제이에서 advanced > build.gradle 파일을 연 후, 실행시키고 http://localhost:8080/ 을 확인한다. 이 화면 뜨면 성공 설정 > gradle 입력 > Build and run using, Run tests using 을 intelliJ IDEA로 바꾸기 ✔ 정적 컨텐츠 static > hello-static.html 정적 컨텐츠 입니다. 2023. 4. 27.
[DB] Sharding (샤딩) ✔ Shading 샤딩은 수평 분할(Horizontal Partitioning)과 동일하며, 인덱스의 크기를 줄이고, 작업 동시성을 늘리기 위한 것이다. 수평 분할이란 스키마가 같은 데이터를 두 개 이상의 테이블에 나누어 저장하는 디자인을 말한다. 데이터베이스를 샤딩하게 되면 기존에 하나로 구성될 스키마를 다수의 복제본으로 구성하고 각각의 샤드에 어떤 데이터가 저장될 지를 샤드키를 기준으로 분리한다. 샤딩과 수평적 파티셔닝과의 차이점은 수평적 파티셔닝은 동일한 DB 서버 내에서 테이블을 분할하는 것이고, 샤딩은 DB 서버를 분할한다는 것이다. 즉, DB 서버의 부하를 분산할 수 있다. ◽ 요구사항 : 샤딩을 하기 위해서는 아래의 공통된 요구사항이 필요하다. • 라우팅을 위해 구분할 수 있는 유일한 키값이.. 2023. 4. 27.
[DB] Replication (복제) ✔ Replication Replication은 복제를 뜻하며 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이며, 사용하기 위한 최소 구성은 Master / Slave 구성이어야 한다. • Master DBMS 역할 : 웹서버로 부터 데이터 등록, 수정, 삭제 요청 시 바이너리로그(Binarylog)를 생성하여 Slave 서버로 전달한다. (웹 서버로부터 요청한 데이터 등록, 수정, 삭제 기능을 하는 DBMS로 많이 사용된다.) • Slave DBMS 역할 : Master DBMS로 부터 전달받은 바이너리로그를 데이터로 반영하게 된다. (웹 서버로부터 요청을 통해 데이터를 불러오는 DBMS로 많이 사용된다.) ◽ Replication을 사용하는 이유 ① 스케일 아웃(Scale-out) → 사용자가.. 2023. 4. 27.
반응형