분류 전체보기233 SOILD원칙?? SOLID원칙이란? 로버트 마틴이 정리한 객체 지향 설게의 5가지 원칙을 의미 S(SRP; Single Responssibility Principle) 단일 책임의 원칙 하나의 객체는 하나의 책임만 갖어야 한다. 응집도 : 모듈 내보의 기능적인 응집도 ex) 카메라라는 기능 안에 카메라의 모든 기능이 모여있어야(응집되어야) 한다. 결합도 : 모듈 간의 상호 결합 정도 하나의 객체는 하나의 기능만 하도록 설계하여 다른 기능들과의 상호관계가 없이 만들어야 한다. ex) 시스템에 변화가 생겼을시 결합도가 높으면 다른 기능을 수정 할 때 고려해야 할 사항이 많아진다. 응집도는 높게, 결합도는 낮게 설계해야 한다. O(OCP; Open Closed Principle) 개방 폐쇄 원칙 확장에 대해서는 개방적, 변경.. Study/팁 2024. 1. 13. URL의 특정 패턴을 파악하고 가로채는 HandlerInterceptor, HandlerInterceptorAdapter HandlerInterceptor, HandlerInterceptorAdapter 애노테이션의 선언 없이 사용 하는 Spring에서의 Class(HandlerInterceptorAdapter) 와 Interface(HandlerInterceptor) 이다. 당연스럽게도 Class이므로 상속받아 사용하고, Interface이므로 구현해 사용해야 한다. 차이점 이라면 PreHandle, PostHandle, afterCompletion 세가지 메서드를 모두 구현해 주여야하는 Interface와 선택해서 Override할 수 있는 Class의 차이라고 할 수 있다. preHandle preHandle은 Controller가 실행 되기 이전에 url을 식별 or 매순간에 중간에 캐치하여 작성한 로직을 우선적으로.. FrameWorks/Spring & Boot 2024. 1. 13. Index란? Index란? 정렬해 놓은 컬럼의 사본 컴퓨터가 빠르게 데이터를 찾을 수 있게 도와줄 수 있는 것. 기본적으로 데이터들을 따로 정렬해 놓은 데이터를 생성하여 쉽게 검색 할 수 있도록 만든 것. 단점은 Index를 생성해야 하기 때문에 DB의 용량을 추가적으로 먹는다는 것. 설명 만약 위와 같은 상황에서 특정 숫자를 검색해야 할 경우 Index가 없다면 1부터 시작해서 특정 숫자를 검색해야 하고, Database는 최악의 경우 100번 검색해야 한다. 하지만, Index를 부여한다면 중간인 50을 기준으로 크거나 같은쪽으로 반씩 소거하면서 검색하게 된다. 이러한 경우 최악의 경우가 Index를 부여했을 경우보다 적어지기 때문에 검색 속도에 향상을 줄 수 있다. 추가 설명 기본적으로 Java들은 Array,.. DataBase/Basic 2023. 12. 24. JOB을 이용한 스케쥴 관리 JOB JOB 이란?? Java의 스케쥴과 비슷한 기능 일정 시간을 설정하여 주기적으로 해당 문구를 실행시켜주는 역할을 한다. JOB 생성 DECLARE X NUMBER; BEGIN SYS.DBMS_JOB_SUBMIT ( JOB => X, WHAT => '${프로시저} or ${반복할 구문}', -- 반복하고 하는 것 NEX_DATE => SYSDATE + 1/24/60, -- 1분후 INTERVAL => 'SYSDATE +${주기}', --6초 간격 NO_PARSE => TRUE ); END; 등록된 JOB 확인 SELECT * FROM USER_JOB; JOB 비활성화 BEGIN DBMS_JOB.BROKEN(${JOB NUMBER}, false); -- 비활성화 COMMIT; END; JOB 수정 -.. DataBase/Oracle DB 2023. 12. 15. View & Materialized View를 사용한 데이터 관리 View View 란? 실체가 존재하지 않는 다는 의미로 가상 테이블이라고도 불린다. 반복적인 조회를 단순하게 만들어 줄 수 있다. ex) 특정 테이블의 특정 컬럼들만 자주 불러와서 사용하는 경우. ex) 특정 테이블들을 UNION하여 가져 올 경우. ex) 특정 DB LINK를 반복적으로 사용할 경우. 등 등 SELECT만 가능하고 UPDATE, DELETE, INSERT는 불가능하다. View의 단점 데이터베이스의 객체로서 저장장치에 저장된다.(SELECT 구문을 저장) View 생성 방법 -- 컬럼명을 변경없이 상용할 경우 CREATE VIEW ${viewName} AS ${SELECT구문} -- 컬럼명을 변경하여 사용할 경우 CREATE VIEW ${viewName}(${colName1}, ${c.. DataBase/Oracle DB 2023. 12. 15. Docker Compose 커맨드 사용방법 Docker Compose 커맨드 사용법 Docker Compose는 여러 개의 컨테이너(container)로 구성된 애플리케이션을 관리하기 위한 간단한 오케스트레이션(Orchestration) 도구입니다. 이번 포스팅에서는 Compose 애플리케이션을 터미널에서 제어하기 위해 사용되는 Docker Compose 커맨드에서 대해서 알아보겠습니다. -f 옵션 Docker Compose는 기본적으로 커맨드가 실행하는 디렉토리에 있는 docker-compose.yml또는 docker-compose.yaml를 설정 파일로 사용합니다. 다른 이름이나 경로의 파일을 Docker Compose 설정 파일로 사용하고 싶다면 -f 옵션으로 명시를 해줍니다. $ docker-compose -f docker-compose-.. Study/Docker 2023. 11. 15. 다른 DB의 데이터를 가져오는 Database Link Database Link Oracle에서는 DB Link를 통해 다린 DB에서 데이터를 조회해 가져 올 수 있다. DB Link 생성 쿼리 비밀번호 입력시에 특수문자고 존재한다면 쌍따옴표를 사용해야 한다. USING절 뒤에 문구는 tnsnames.ora 파일에 작성해서 저장해 두어도 된다. CREATE ["PUBLIC or PRIVATE"] DATABASE LINK ["DB링크 이름"] CONNECT TO ["연결할 계정"] IDENTIFIED BY ["연결할 계정의 비밀번호"] USING ' (DESCRIPTION = (ADDRESS=(PROTOCOL = TCP)(HOST = ["HOST IP"])(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE.. DataBase/Oracle DB 2023. 10. 17. MSS(Maximum Sagment Size) vs MTU(Maximum Transmission Unit) MSS(Maximum Sagment Size) 이론상 Sagment의 최대 크기는 68Kb TCP 기반의 정보로, TCP데이터 길이만을 의미 MSS는 TCP의 전송단위인 Sagment의 최대 사이즈를 결정하게 된다. MSS는 TCP 연결을 위한 3-way handshake 과정 중에 결정 된다. TCP연결을 위한 초기 Sagment를 전송 시에 옵션 값에 MSS를 같이 보내 이를 결정한다. MTU(Maximum Transmission Unit) IP기반의 정보로 IP헤더, TCP헤더, TCP데이터를 모두 포함하는 길이 네트워크의 하드웨어에서 설정한 데이터 전송 제한의 최대 크기이다. 즉, 매체에 따라 값이 다르다. MSS와 MTU의 관계 MSS는 MTU에 의해 값이 결정되게 되는데, 통상 MTU는 MSS.. Study/Network 2023. 10. 14. OpenStack의 DashBoard 구성 Project Compute 개요 전체적인 인스턴스들의 간단한 사용량을 모니터링 할 수 있는 페이지인스턴스 인스턴스를 생성하고 관리하기 위한 페이지이미지 부팅을 할 수 있는 인스턴스를 만들 때 필요한 이미지 파일을 업로드 및 관리하기 위한 페이지키페어 ssh를 이용해 원격 접속 할 때 키기반 인증을 구성할 수 있도록 제공하는 키를 관리하는 페이지 Volume 볼륨 볼륨을 만들거나 작업할 때 사용하는 페이지스냅샷 그 볼륨에 대해 스냅샷을 생성했을때 관리, 상태를 저장하여 저장된 상태를 이용해 또 다른 불륨을 생성할 때 Network 네트워크 토폴로지 네트워크 구성을 그림으로 표현하는 페이지 네트워크, 라우터, 인스턴스를 연결 구성하는것을 보여줌네트워크보안그룹 라우터 firewall-cmd 처럼 인스턴스의.. Study/OpenStack 2023. 10. 14. OpenStack이란?? OpenStack 클라우드 환경에서 컴퓨팅 자원과 스토리지 인프라를 셋업하고 구동하기 위해 사용하는 오픈 소스 소프트웨어 프로젝트의 집합 Compute Pool(CPU, RAM...) + Storage Pool(HDD, SSD...) + Network Pool 등을 모니터링하고 관리하는 운영체제 사용화된 클라우드 시스템을 사용하는 경우와 비교시, 시스템 사용에 대한 비용이 들지 않아 이점이 있다. 치명적인 단점은... 구축이 어렵다는 것. OpenStack의 구성요소 Horizon(Dashboard) 웹 관리 포털 사용자가 오픈스택의 구성요소들을 간편하게 사용할 수 있도록 지원해주는 UI서비스Nova (Compute) VM 인스턴스 관리 가상머신을 관리 AWS의 EC2, GCP의 Compute Engti.. Study/OpenStack 2023. 10. 9. 클라우드 컴퓨팅이란?? 클라우드 컴퓨팅 개념 중앙 집중화된 데이터센터에서 서비스를 받고, 소프트웨어 프로그램들도 인터넷 망을 통해 자유롭게 빌려쓰는 것. IT자원을 구매하거나 소유할 필요 없이, 필요한 만큼 사용료를 지불하고 쓰는 개념 필요성 사용자 편의성 서비스 연계썽 자원의 공동활용 경제성 실제 자원 활용률 : 5% ~ 20% 특정 시점에서만 활용률이 급격히 증가하게 되는데, 이 때 필요한만큼만 증량하여 사용할 수 있음 ex. 발렌타인데이(초콜릿쇼핑몰), 월드컵(스트리밍사이트) 등 제공 유형에 따른 분류 IaaS(InfraStructure as a Service) : 인프라 제공 서비스 프로세싱 파워, 서버, 네트워크, 가상화 및 OS와 같은 기본적인 컴퓨팅 자원을 제공하는 클라우드 서비스 PaaS(Platform as a.. Study/OpenStack 2023. 10. 9. JPA Entity 단위 기본 CRUD처리 기본 CRUD Method find(${param1}, ${param2}) SELECT를 할 때 사용하는 Method 첫번째 parameter로 조회할 Entity의 Class정보를 .class로 받아온다. 두번째 parameter로 조건 PK에 값을 넣어준다. persist(${param}) INSERT를 할 때 사용하는 Method param에는 Insert를 할 Entity 객체를 명시한다. remove(${param}) 우선 조회(find)를 하여 영속 컨텍스트에 데이터를 담아둔다. param에는 DELETE를 할 객체를 넣어주는데 이때 find()로 찾은 객체를 넣어준다. commit과 remove사이에 다른 프로세스가 데이터를 삭제해도 예외가 발생하기에 큰 문제는 없다. FrameWorks/JPA 2023. 8. 26. 이전 1 ··· 5 6 7 8 9 10 11 ··· 20 다음 💲 추천 글 728x90 반응형