일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- STREAM
- ansible
- tomcat
- Collection
- Jenkins
- IntelliJ
- 방화벽
- 소켓
- 액세스회선
- Linux
- post
- Spring
- 허브
- AOP
- LAN어댑터
- Java
- gradle
- container
- map
- Set
- docker
- DevOps
- 라우터
- 캐시서버
- mybatis
- jdk
- Pipeline
- JPA
- sonarQube
- cloud
- Today
- Total
목록분류 전체보기 (195)
거북이-https://velog.io/@violet_evgadn 이전완료
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..
들어가기 앞서... 이전에 우리는 MyBatis를 실행하기 위해서는 SqlSessionFactory라는 객체가 존재해야 하고, SqlSessionFactory가 매 Request마다 SqlSession을 만들어서 Query를 수행함을 배웠다. 따라서 이번 Section에서는 MyBatis의 주체라고도 말할 수 있는 SqlSessionFactory에 대한 설정을 해보겠다. 사전 작업(이전 Section 참고) 먼저 application.properties의 설정은 이전 Section과 마찬가지로 수행해준다. 우리는 MySQL을 활용하기로 하고 현재 프로젝트 구조는 아래와 같다고 가정하자 # application.properties 설정 spring.datasource.driver-class-name=com..
Gradle에 의존성 추가 build.gradle의 dependencies 위치에 2개의 의존성만 추가해주면 된다. implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.4' implementation "mysql:mysql-connector-java:5.1.44" application.properties 설정 MyBatis 같은 경우 "DB"를 활용하기 위한 기술이다 보니 일단 어떤 DB를 활용할 것인지 지정해줘야 한다. (DB 설치 및 활용 방법 같은 경우 나중에 포스팅하도록 하겠다) 이후 application.properties에 "어디에 Mapper가 위치해있는가"에 대한 정보를 입력해 줄 필요가 존재한다. Mapper I..
웹 프로젝트 구성 먼저 MVC 구조를 활용한 Web 프로젝트 구성을 살펴보자. 웹프로젝트는 일반적으로 3개의 Layer로 구성되어 있는데 Presentation Layer, Service Layer, Data Access Layer로 구성된다. 먼저 Presentation Layer는 UI를 담당하는 구성요소로써 MVC 구조에 해당하는 요소들이 이 곳에 포함되어 있다. Service Layer(Business Layer라고도 함)은 어떤 형태의 데이터가 필요하며 반환될 것인지에 대한 로직이 구현되어 있는 Layer를 말한다. 즉 MVC 구조에서 Controller가 Model과 View 사이에 징검다리 역할을 하며 핵심 로직을 수행하는데, 이 "핵심 로직이 구현된 Layer"가 Service Layer라..
SQL Mapper 장단점 ◎ 장점 불필요한 코드들을 줄일 수 있음 이는 SQL Mapper 뿐만이 아닌 ORM의 장점이기도 하다. Persistence Framework의 장점이기 때문에 별다른 설명 없이 넘어가겠다. SQL Query를 그대로 활용하기 때문에 복잡한 JOIN, 튜닝 등을 수월하게 할 수 있음 이 부분이 SQL Mapper가 가진 가장 큰 장점이다. 이전에 말했듯 ORM은 객체와 Table을 연결하는 기술로써, SQL 구문을 입력하지 않고서도 편한 DB 활용을 할 수 있다는 게 장점이었다.(물론 직접 SQL 구문을 입력하여 활용할 수도 있긴 하다) 하지만 이는 곧 단점이 될수 있는데 복잡한 JOIN문을 활용하는 상황에서는 자동으로 SQL 구문을 형성하는 ORM은 더욱 복잡한 Query문..
Persistnece Framework란? Persistence Framework는 "영속성 프레임워크"라고도 불린다. 앞서 말했듯 영속성이라는 것은 데이터가 사라지지 않는 성질이라고 이해하면 될 것이며, 프레임워크도 앞서 말했듯 SW 구체적인 부분에 대한 설계 및 구현을 쉽게 하기 위해 재사용이 가능한 클래스들을 제공하는 것이다. 즉, Persistence Framework를 해석하자면 "데이터가 사라지지 않게 DB에 저장하는 로직에 대한 설계 및 구현을 쉽게 하기 위하여 만든 SW"라고 할 수 있을 것이다. 하지만 이렇게만 설명하면 "JDBC도 영속성 프레임워크 아니야?"라고 생각할 수도 있다. 하지만 JDBC를 보면 Connection을 연결하고 이를 통해 Statement를 얻은 다음 Result..
데이터를 DB에 저장하는 방법 ◎ 영속성(Persistence) 먼저 Persistence라는 용어의 정의부터 알고 가는 것이 좋다. 영속성이란 "데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성"을 의미한다. 그리고 영구적으로 저장되는 데이터를 "영구적인 객체(Object Persistence)"라고 한다. 예를 들어 A라는 정보를 프로그램 상 저장해 놓았다고 가정하자. 만약 프로그램이 종료되었을 때 이 A라는 정보는 보존될까? 보존되지 않을 것임을 쉽게 예측 수 있다. 하지만 만약 A라는 데이터를 DB에 저장했으면 어떻게 될까? 프로그램이 종료되더라도 A는 DB에 저장되어 있으므로 사라지지 않을 것이며, 이러한 데이터 특성을 "영속성"이라고 하는 것이다. 프로그램은 CRUD(Crea..
들어가기 앞서... Spring 개념을 한 번 복습하자라는 차원에서 블로그를 새로 만들어 글을 썼는데 생각보다 내가 개념을 대충 공부하고 Spring을 활용하고 있음을 알 수 있었다. 이 부족한 개념에 대해서 채우려다보니 이론적 조사와 설명에만 많은 시간을 쏟은 것 같다. 하지만, 부족한 개념을 정확히 이해하고 코드 활용법을 이해하다보니 "왜 그 방식으로 프로그래밍을 수행하는가"가 명확히 보이며 프로그램의 난이도가 쉬워졌음을 알 수 있었다. (특히 AOP... 처음 AOP 코드 짤 때는 주먹구구식으로 짰는데 개념을 완벽히 이해하고 짜니 에러 1개 없이 빠르고 정확한 구현이 가능해졌고, 컨닝 페이퍼 없이도 AOP에 대한 코드를 짤 수 있게 되었다) 앞으로도 코드에 대한 설명을 하면서 필요할 때마다 새로운 ..
실습에 앞서... 자, 아무 클래스나 말고 @Aspect 구문을 입력해보자. 해당 라이브러리가 존재하는가? 만약 존재한다면 바로 아래 파트로 넘어가면 된다. 하지만 @Aspect는 존재하지 않고 @EnableAspectJAutoProxy 어노테이션만 존재하는 경우가 있을 것이다. 이 경우 실습을 할 수가 없다! 그렇다면 어떻게 해야 실습을 할 수 있을까. Spring의 간편한 점은 build.gradle을 통해 의존성을 주입만 해주면 Spring 측에서 의존성에 필요한 라이브러리들을 Repository에서 찾아 자동으로 다운로드한다는 것이다. 즉, AOP 의존성을 build.gradle에 주입해주기만 한다면 Spring은 자동으로 Repsitory에서 의존성을 위해 필요한 라이브러리를 찾아 다운로드한다...
생성자 주입 @Component public class UserService { private final MemberService memberService; private final VIPService vipService; @Autowired public UserService(MemberService memberService, VIPService vipService){ this.memberService = memberService; this.vipService = vipService; } public void greet(){ System.out.println("********"); memberService.greeting(); vipService.greeting(); System.out.println("..