목록웹 (15)
코드와이
JPA ORM(Object-relational Mapping) 개념 객체를 RDB 테이블에 자동으로 영속화 해주는 것 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있다. 객체지향적 접근만 고려하면 되기 때문에 생산성 증가 단점 프로젝트 규모가 크고 복잡하여 설계가 잘못된 경우 속도 저하 및 일관성을 무너뜨리는 문제점이 생길 수 있음 ORM vs SQL Mapper ORM DB 데이터 Object 필드 객체를 통해 간접적으로 DB 데이터를 다룬다. 객체와 DB의 데이터를 자동으로 매핑해준다. JPA, Hibernate SQL Mapper SQL Object 필드 SQL문으로 직접 DB를 조작한다. MyBatis, jdbcTemplate JPA(Java Persistence API) Java ..
스프링 프레임워크 개념 POJO 기반의 Enterprise 애플리케이션 개발을 쉽고 편하게 할 수 있도록 한다. Spring이 하부구조를 처리하기 때문에 개발자는 애플리케이션 개발에 집중할 수 있다. 동적인 웹 사이트 개발하기 위한 여러가지 서비스를 제공한다. 전자 정부 표준 프레임워크 기반의 기술 특징 경량 컨테이너 자바 객체를 담고 있는 컨테이너 자바 객체의 생성, 소멸과 같은 라이프사이클을 관리 언제든지 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다 JDBC를 비롯한 MyBatis, iBatis, Hibernate, JPA 등 DB처리를 위해 널리 사용되는 라이브러리와 연동을 지원한다. Bean이란 컨테이너 안에 들어있는 객체 필요할 때 컨테이너에서 가져와서 사용 @Bean을 사용하거나..
보안 설정 1. Elasticsearch의 최소한의 보안 설정을 위해 elasticsearch.yml 파일에 다음을 추가합니다. xpack.security.enabled: true xpack.security.transport.ssl.enabled: true 2. elasticsearch를 실행하고 'bin/elasticsearch-setup-passwords interactive' 를 EC2에 입력하고 비밀번호를 설정합니다. Java Elasticsearch 보안 적용 68번 라인과 같이 Credentials에 설정한 비밀번호를 기입합니다. Python Elasticsearch 보안 적용 es = Elasticsearch( hosts=[{'host':'localhost', 'port':'9200'}], ..
다운로드 및 설치 1. elastic 다운로드 링크 : https://www.elastic.co/downloads/elasticsearch bin/elasticsearch.bat 실행 2. kibana 다운로드 링크 : https://www.elastic.co/kr/downloads/kibana kibana.yml파일의 server.host: "0.0.0.0" "" 꼭 쓰고 : 뒤에 한 칸 띄어쓰기 필요 bin/kibana 실행 CRUD 예제 1. Elastic vs RDBMS Index Database Type Table Document row Field column Mapping schema 2. POST gaia 인덱스의 message 타입에 4라는 아이디로 저장했다는 의미이다. 3. GET _se..
JPA SQL Mapper SQL 문을 직접 작성해서 DB에 접근합니다. Mybatis, jdbcTemplate ORM(Object Relational Mapping, 객체 관계 매핑 ) 객체는 객체대로 설계하고, 관계형 데이터베이스는 관계형 데이터베이스대로 설계합니다. 객체를 통해 간접적으로 DB 데이터를 다룹니다. 객체와 DB의 테이블을 자동으로 매핑시킵니다. JPA, Hibernate JPA(Java Persistence API) 자바 ORM 기술에 대한 표준 명세로, 자바에서 제공하는 API 입니다. 자바 어플리케이션에서 관계형 데이터베이스 사용을 정의한 인터페이스입니다. 자바 클래스와 관계형 DB 테이블을 매핑합니다. spring-data-jpa 는 스프링에서 제공하는 프레임워크입니다. 데이터를..
인터셉터(Interceptor)? 인터셉터란 컨트롤러에 들어오는 HttpRequest 와 컨트롤러에서 보내는 HtttpResponse 를 가로채는 역할을 합니다. 인터셉터는 Filter 의 역할과 유사한데 그 차이점이 분명히 존재합니다. 구분 인터셉터 Filter 위치 spring-servlet.xml web.xml 호출 시점 DispatcherServlet 실행 후 DispatcherSevlet 실행 전 인터셉터는 주로 로그인 처리, 권한 체크 등의 기능에서 사용됩니다. 만약 인터셉터를 사용하지 않는다면 로그인 정보를 확인해야 하는 작업마다 컨트롤러에서 session 을 통해 로그인 정보를 확인해야 합니다. 인터셉터는 이 작업을 대신 수행해주기 때문에 중복 코드가 확 줄어들 수 있습니다. 핸들러가 수 ..
JPA 자바 ORM 기술에 대한 표준 명세로, JAVA 에서 제공하는 API이다. Spring-Data-JPA JPA 를 쉽게 사용할 수 있도록 Spring 에서 지원해주는 프레임워크이다. JPA를 사용해서 프로젝트를 진행하던 중... String 타입의 id에 @Id 와 Identity 타입의 @GeneratedValue 를 설정하고 DB table 에서 주요키로 id char(8) NOT NULL AUTO_INCREMENT 로 설정하니 Field 'id' doesn't have a default value 라는 오류가 났다. 먼저 GeneratedValue 를 살펴보면, GeneratedValue 는 자동 생성으로 다음과 같은 TYPE이 있다. IDENTITY 데이터베이스가 알아서 생성 Auto_In..
Vue.js axios CDN 설치방식 NPM 방식 npm install axios axios 대표 API axios.get('URL 주소').then().catch() 해당 URL주소에 GET 요청을 보내고 성공하면 then 로직을 수행, 실패하면 catch 로직을 수행합니다. axios.post('URL 주소').then().catch() 요청 방식만 POST이고 나머지는 GET 방식과 동일합니다. axios .get('/list') .then((response) => { this.aptList = response.data.response.body.items.item; }) .catch((error) => { console.dir(error); }); axios를 이용한 Spring REST API..