분류 전체보기 (66) 썸네일형 리스트형 [TIL] 210929 고급매핑 rdb 테이블을 매핑한 객체를 좀더 객체지향적으로 사용할 수 있도록 제공해주는 기능들 상속 관계 매핑 조인 테이블 전략 싱글 테이블 전략 @MappedSuperclass 식별자 클래스 @IdClass @EmbeddedId 상속관계매핑 테이블 구조를 마치 상속받는 것 처럼 extends를 이용해 작성하는 전략 조인 테이블 전략 부모 클래스의 공통된 정보는 한 테이블에서 관리하고, 나머지 각 자식 클래스의 정보들은 다른 클래스에서 별도로 관리 // 부모 클래스 @Entity @Table(name = "item") @Inheritance(strategy = InheritanceType.JOINED) public abstract class Item { ... } @Inheritance 애노테이션에서 J.. DAO와 repository의 차이 1. DAO DAO객체는 Data Access Object의 약자로 Database의 data에 access하는 트랜잭션 객체입니다. 웹서버는 DB와 연결하기 위해서 매번 커넥션 객체를 생성하는데, 이것을 해결하기 위해 connection Pool을 사용합니다. Connection Pool 이란 connection 객체를 미리 만들어 놓고 그것을 가져다 쓰고, 다쓰고 난 후에는 반환해 놓는 것입니다. 하지만 유저 한명이 접속해서 한번에 하나의 Connection만 일으키는 것이 아니라 많은 Connection을 만들기 때문에, Connection Pool은 오버헤드를 효율적으로 하기 위해 DB에 접속하는 객체를 하나 만들고, 모든 페이지에서 그 객체를 호출해 사용합니다. 이렇게 커넥션을 하나만 가져오고 .. Proxy 객체 더보기 Proxy vs. Proxy Pattern Proxy Pattern : 실제로 Target에 대한 기능을 확장하거나, 추가하지 않음. 타깃에 접근하는 방식을 변경해주는 역할 Proxy : 실제 Target의 기능을 수행하면서 기능을 확장하거나 추가하는 실제 "객체"를 의미 java에서는dynamic proxy와 CGLib를 제공합니다. 만약 타깃이 하나 이상의 인터페이스를 구현하고 있는 클래스라면 JDK Dynamic Proxy의 방식으로 생성되고 인터페이스를 구현하지 않은 클래스라면 CGLIB의 방식으로 AOP Proxy를 생성해줍니다. 1. dynamic proxy dynamic proxy의 경우 Proxy클래스를 Java에서 만들어 주기 때문에 Proxy 클래스 내부를 직접 구현 할 수가 없.. proxy 패턴 프록시 패턴이란? 실제 기능을 수행하는 객체 대신 가상의 객체를 사용해 로직의 흐름을 제어하는 디자인 패턴 프록시 패턴의 특징 원래 하려던 기능을 수행하며 그외의 부가적인 작업(로깅, 인증, 네트워크 통신 등)을 수행하기에 좋음 비용이 많이 드는 연산(DB 쿼리, 대용량 텍스트 파일 등)을 실제로 필요한 시점에 수행 가능 프록시 객체와 실제 객체의 사용법이 유사하므로 사용성이 좋음 1) 가상 프록시 가상 프록시는 실제 객체의 사용 시점을 제어할 수 있습니다. ex> 문서를 디코딩하는 프로그램 //인터페이스 interface TextFile { String fetch(); } //구현체 class SecretTextFile implements TextFile { private String plainText.. [TIL] 210810 1. MySQL 2. 클라우드 컴퓨팅 / AWS 3. Docker MySQL MySQL 역사 1995년 스웨덴 회사였던 MySQL AB에 의해 개발된 관계형 데이터베이스 오픈소스로 시작됨 My는 개발자 중 한 사람의 딸의 이름이었음 2008년 썬 마이크로시스템가 MySQL AB를 인수 2009년 오라클이 썬을 인수하면서 Java, MySQL의 소유권을 가지게 되었는데, Mysql이 유료화 될 수도 있다는 여부가 생김 2010년 MySQL의 처음 개발자였던 Monty가 MySQL과 호환이 되는 MariaDB라는 오픈소스 개발 현재 Mysql은 무료, 유료버전이 있음 MySQL 종류와 버전 MariaDB 오픈 소스로 무료 MySQL 5.5에 기반해서 개발됨 [TIL] 210809 데이터베이스 관계형 데이터베이스는 크게 2가지 종류로 나뉜다. 프로덕션 관계형 데이터베이스(RDBMS)와 데이터 웨어하우스이다. 1. 프로덕션 관계형 데이터베이스 서비스의 운영에 필요 데이터를 저장하는 곳 빠른 처리속도가 중요함 보통 웹,앱에서 생성되는 데이터들을 프로덕션 관계형 데이터베이스에 저장함(회원가입, 물건구매 등등) 처리 속도가 중요 2. 데이터 웨어하우스 사용자들이 내부 직원들인 경우 처리하는 데이터가 상대적으로 크다. 빠르게 처리하는것보다 얼마나 큰 데이터를 처리할 수 있느냐에 초점이 맞춰져있음 회사 관련 데이터를 저장하고 분석함으로써 의사결정과 서비스 최적화에 사용 BigQuery, Snowflake, Redshift, MySQL, ... 처리속도 보다는 구조화된 큰 데이터를 처리하는 것.. [TIL] 210806 1. Dependency 2. 프로젝트 설계 3. 프로젝트 구현 1. Dependency 구현 시 자주 사용하는 라이브러리 : javafaker, Lombok (1) javafaker 1) maven 라이브러리 검색 사이트 : https://search.maven.org/ 2) Gradle Groovy DSL 부분 코드 복사 3) build.gradle 파일 dependency 설정 (2) Lombok 1) lombok 설치 : https://projectlombok.org/ 2) javaFaker와 같은 방법으로 dependency 설정 3) 따로 플러그인을 설치해야 사용 가능 [Files] -> [setting] -> [Plugins] -> [lombok] 플러그인 설치 사용 예시 JavaFaker .. 디자인 패턴 디자인패턴이란? 디자인 패턴은 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 전형적인 해결 방식이다. 디자인 패턴을 통해 설계 문제, 해결 방법, 해결 방법을 언제 적용해야 할지, 그 결과는 무엇인지 등을 알 수 있다. 또한 디자인 패턴은 한 패턴에 변형을 가하거나 어떠한 요구사항을 반영하면 다른 패턴으로 변형되는 특징이 있다. 확장과 수정에 용이하여 설계 이후에도 추가적인 유지 보수에 비용이 적게들어가는 코드를 설계하는 것이 목표이다. 객체지향 방법론 에서 좋은 코드를 설계하기 위해 지켜야 하는 원칙이 SOLID 원칙이고, 이러한 원칙에 기반해서 좀 더 구체적인 코드로 분류한 것이 디자인 패턴이다. ✔ 아키텍쳐 패턴과 디자인 패턴 아키텍쳐 패턴은 주어진 상황의 소.. 이전 1 ··· 3 4 5 6 7 8 9 다음