일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- sonarQube
- tomcat
- STREAM
- container
- 소켓
- IntelliJ
- LAN어댑터
- Linux
- Jenkins
- 허브
- mybatis
- post
- 캐시서버
- Spring
- cloud
- JPA
- ansible
- Collection
- docker
- 액세스회선
- map
- Set
- 라우터
- Java
- Pipeline
- 방화벽
- DevOps
- AOP
- gradle
- jdk
- Today
- Total
목록웹 개발 (48)
거북이-https://velog.io/@violet_evgadn 이전완료
EntityManger 생성 방법 먼저 이론적인 방법을 설명하겠다. 이론적인 방법을 설명하는 이유는 Spring Boot 사용 여부에 따라 EntityManager 사용 방법이 완전히 다르기 때문이다. 지금 설명하는 방법은 Spring Boot를 사용하지 않을 경우 EntityManger를 생성하는 방법인데 Spring Boot를 활용하더라도 이런 개념이 바뀌는 것은 아니고 단순히 Spring Boot가 중간 과정을 담당해주기 때문에 더욱 편리하게 설정 및 EntityManager를 생성할 수 있게 되는 것이다. JPA도 큰 의미로 보자면 MyBatis의 동작 방식과 유사하다. MyBatis는 SqlSessionFactory라는 것이 Query가 필요할 때마다 SqlSession을 생성하여 Query를 ..
Entity 상태 ◎ 비영속(new/transient) 영속성 컨텍스트와 전화 관계 없는 객체 상태를 의미한다 영속성 컨텍스트가 JPA에서 DB와 통신하는 중간 다리 역할을 하기 때문에 결국 객체가 영속 컨텍스트에 의해 관리를 받고 있어야만 DB와 통신하며 데이터에 대한 처리가 가능해지는 것이다. 그렇다면 영속성 컨텍스트와 아예 관련이 없는 비영속 상태의 객체는 어떤 의미를 지닐까? 그냥 "순수한 객체 상태", 즉 DB와 연동할 수 없는 단순한 POJO 객체에 불과하다. 이런 비영속 상태의 객체를 persist() 명령을 통해 영속성 컨텍스트에 등록시켜 관리 상태로 바꿔줘야지만 객체를 통해 DBD 데이터를 처리할 수 있게 되는 것이다. ◎ 영속(managed) 영속성 컨텍스트에 저장된 Entity 상태를..
영속성 컨텍스트 ◎ 영속성 컨텍스트 JPA 개념 중에 가장 강조할 개념이 무엇인지 묻는다면 필자는 아무 고민하지 않고 영속성 컨텍스트라고 말할 것이다. 영속성 컨텍스트는 (개인적인 생각에) JPA의 꽃이라고도 할 수 있으며 동시에 JPA에서 제공하는 여러 편리한 기능을 활용할 수 있게 해주는 최고의 도우미이기도 하다. 동시에 Entity를 관리해주기도 하고 Update를 편리하게 할 수 있게 해주는 공간으로 영속성 컨텍스트에 대해 알지 못한다면 JPA 개념을 시작조차 할 수 없을 정도이다. 영속성 컨텍스트란 "Entity를 영구히 저장하는 환경"을 말한다. 조금 더 풀어보자면 JPA에서 Entity(객체)를 Transaction 과정에서 저장하여 재사용할 수 있게 해주는 공간이다. 이 영속성 컨텍스트라는..
JPA 등장 배경 ORM의 시초는 "EJB"이다. EJB는 Eneterprise Java Bean의 약자로써 기업환경의 시스템을 구현하기 위한 Server 측 Componenet Model이다. EJB에서는 DB 연동이 필요하지 않은 Session Bean과 DB의 데이터를 관리하는 Entity Bean이 존재한다. DB 관련 쿼리는 Entity Bean에서 자동으로 처리하여 개발자는 로직에 더욱 집중하며 코드를 짤 수 있게 되는 것이다. 일반적으로 Client가 Session Bean을 부르고, Session Bean이 Entity Bean을 호출하여 DB에 접근한다. 하지만 EJB는 코드가 지저분하고 Interface를 많이 구현해야 해서 복잡성이 높으며 속도가 느리다는 단점이 존재했다. 이런 문제를..
if MyBatis 동적 SQL에서 가장 널리 활용되는 것이 if가 아닐까 생각한다. MyBatis에서 결국 동적 SQL은 "어떤 값이 NULL일 때는 조건문에 추가시키지 말고, 값이 존재할 때만 조건문에 추가시켜주세요" 같은 요청을 처리할 때 많이 활용되고 이를 처리하기 위한 가장 적절한 동적 SQL이기 때문이다. WHERE문에 많이 활용되기는 하지만 ORDER BY, GROUP BY 등에서도 를 활용할 수 있다. ◎ 간단한 if 활용 SELECT * FROM BLOG WHERE state = ‘ACTIVE’ AND title like #{title} AND author_name like #{author.name} 분명 MyBaits로 짰는데 신기하게도 무슨 말인지 바로 이해할 수 있을 것 같다. 만약..
ResultMap 우리가 MyBatis를 활용하는 이유는 무엇일까? 물론 Query에 객체 값을 넣어줘서 자동으로 내가 원하는 Query를 생성해주고 동적 SQL을 통해 상황에 맞는 Query를 생성할 수 있다는 점도 있을 것이다. 하지만, 개인적으로 생각하는 MyBatis나 ORM의 가장 큰 장점은 "결과를 객체에 담아준다"라는 것이다. 원래라면 DB에서 데이터를 뽑을 때는 단순한 데이터의 형태일 뿐이다. 예를 들어, Name이라는 Column에 "홍길동"이라는 Data가 들어있다고 하더라도 DB에서 뽑으면 단순히 "홍길동"이라는 Data가 뽑힐 뿐, 후처리 코드를 통해 내가 원하는 객체에 이 Data를 넣어줘야 한다. 하지만 MyBatis나 ORM은 Column과 객체 Property를 자동으로 매핑..
NameSpace select * from Blog where id = #{id} Namespace는 XML 파일(Mapping File)과 Mapper Interface를 연결하는 방법이다. 우리는 typeAlias를 활용해서 XML 파일 측에서 자바 객체를 활용할 수 있고, MapperLocation을 통해 Mapper 측에서 XML과 연동될 수 있음을 알았다. 그런데 "어떤 XML이 어떤 Mapper Interface와 연동되는가"에 대해서는 명확히 정한 것이 없다. 우리는 단지 특정 경로에 있는 XML 파일 전체가 Mapping File이 될 수 있다는 것만 명시하였을 뿐 "A XML이 B Mapper Interface와 연동된다"처럼 명확한 연결관계는 아직 설정하지 않은 것이다. 이런 명확한 연..
settings 런타임 시 마이바티스의 행위를 조정하기 위한 값들이다. ◎ settings 설정 방법 및 적용 먼저 위 파일과 같이 XML Config 파일을 만들어줘야 한다. 방법은 간단한데 ~ 으로 SQL이 아닌 Config에 대한 파일임을 알려주고, 를 통해 우리가 원하는 설정값들을 지정해주면 된다. SqlSessionFactory 설정을 설명할 때 setConfigLocation()에 대해 설명한 적이 있었는데 바로 이 메서드를 활용할 차례이다. 하드 코딩을 하거나 application.properties에 Config XML 파일의 경로를 입력해준 뒤 경로를 SqlSessionFactoryBean에 먹여주면 된다. 이후 SqlSessionFactory는 해당 설정을 가지는 SqlSession을 ..
이번에는 이전 설정을 활용해서 직접 MyBatis를 활용해보자. 단, 아직 MyBatis를 제대로 공부해보지 않았기 때문에 MyBatis의 기능을 온전히 활용할 수 없다. 따라서 일단 실제로 Query문이 수행되는지 확인하는 쉬운 Query문에 대해 적용해볼 것이다. 사전 작업 일단 MyBatis를 활용하기 위해선 Database와 Table이 존재해야 할 것이다. Table에 대한 Setting은 아래와 같이 설정했다. 객체 만들기 @Data public class Member { private int num; private String name; private String id; private String pwd; } MyBatis에서 중요한 것은 Query문과 연동될 객체를 만드는 과정이다 SQL ..
MariaDB 설치 여러 가지 DBMS에 대해서는 나중에 CS 쪽을 공부할 때 제대로 다룰 것 같다. 하지만 나는 MariaDB를 자주 활용하는데, 가장 큰 이유는 "공짜"라는 것이고(너무 좋아요 공짜) Oracle 쪽 DBMS는 그쪽만의 Query가 따로 존재하는데 MariaDB는 MySQL의 Query 문법을 활용하므로 나에게 더욱 익숙한 문법을 활용할 수 있다는 점이다. 그렇다면 MariaDB 설치를 순서대로 알아보자 1. MariaDB 공식 사이트 접속 : https://mariadb.org/ MariaDB Foundation - MariaDB.org … Continue reading "MariaDB Foundation" mariadb.org 2. Download 버튼 클릭 3. 원하는 버전의 m..