관점 지향 프로그래밍 (AOP) 핵심 관심 사항과 공통(부가) 관심 사항 - 핵심 관심 사항(core concern)과 공통 관심 사항(cross-cutting concern) - 기존 OOP에서는 공통관심사항을 여러 모듈에서 적용하는데 있어 중복된 코드를 양상 하는 한계가 존재함 - 이를 해결하기 위해 AOP가 등장 - Aspect Oriented Programming은 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 관심 사항을 기준으로 프로그래밍함으로써 공통 모듈을 손쉽게 적용할 수 있게 함 AOP는 application에서의 관심사의 분리(기능의 분리) 즉, 핵심적인 기능에서 부가적인 기능을 분리한다. 분리한 부가기능을 어스펙트(Aspect)라는 독특한 모듈 형태로 만들어서 설계하고 ..
IoC (Inversion of Control, 제어의 역행) - IoC/DI - 객체지향 언어에서 Object간의 연결 관계를 런타임에 결정 - 객체 간의 관계가 느슨하게 연결됨(loose coupling) - IoC의 구현 방법 중 하나가 DI(Dependency Injection) IoC 유형 Dependency Lookup - 컨테이너가 lookup context를 통해서 필요한 Resource나 Object를 얻는 방식 - JNDI 이외의 방법을 사용한다면 JNDI관련 코드를 오브젝트 내에서 일일이 변경해 주어야 함 - Lookup 한 Object를 필요한 타입으로 Casting 해 주어야 함 - Naming Exception을 처리하기 위한 로직이 필요 Dpendency Injection - ..
코드 이해하기 import "./App.css"; function App() { return ( Hello, I'm Jetty! ); } export default App; import구문 - 특정 파일을 불러오는 것을 의미 - 리액트로 만든 프로젝트의 자바스크립트 파일에서는 import를 사용하여 다른 파일들을 불러와 사용할 수 있음 - import는 Node.js에서 지원하는 기능. Node.js에서는 require라는 구문으로 패키지를 불러옴 * Node.js - 브라우저가 아닌 환경에서 자바스크립트를 실행할 수 있게 해 주는 환경 - 이러한 기능을 브라우저에서도 사용하기 위해 번들러(bundler)를 사용 대표적인 번들러로 웹팩, Parcel, browserify라는 도구가 있으며, 각 도구마다 ..
Spring이란 https://spring.io Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io - Spring Framework는 자바로 Enterprise Application을 만들 대 포괄적으로 사용하는 Programming 및 Configuration Model을 제공해 주는 Framework로 Application 수준의 인프라 스트럭쳐를 제공. - 즉, 개발자가 복잡하고 실수하기 쉬운 Low Level에 신경 쓰지 않고 Business Logic 개발에 전념할 수 있도록 해준다. * 엔터프라이즈 급 애플리케이..
데이터베이스 모델링 (Database Modelling) - 정보화 시스템을 구축하기 위해 어떤 데이터가 존재 하는지 또는 업무에 필요한 정보는 무엇인지 분석하는 방법 - 관계형 데이터베이스는 이 ‘표’의 개념을 사용해서 데이터를 구성하는 방법을 사용 데이터베이스 모델링 순서 개념적 데이터베이스 모델링 업무분석 단계에서 얻어진 내용을 토대로 우선 Entity를 추출하고 Entity내에 속성(Attribute)을 구성하며 Entity간의 관계를 정의해서 ER-Diagram을 정의하는 단계 1.사용자 부문의 처리현상을 분석한다. 2.중요 실체와 관계를 파악하여 ERD를 작성한다. 3.실체에 대한 상세 정의를 한다. 4.식별자를 정의하고, 식별자 업무규칙을 정한다. 5.실체별로 속성을 상세화 한다. 6.필요한..
JOIN 이란 - 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 조인이 필요 - 일반적으로 조인 조건을 포함하는 WHERE 절을 작성해야 한다. - 조인 조건은 일반적으로 각 테이블의 PK 및 FK로 구성됩니다. JOIN 종류 - inner join - outer join - left outer join - right outer join JOIN 조건의 명시에 다른 구분 - natural join - cross join(full join, cartesian join) JOIN 시 주의 사항 - 조인의 처리는 어느 테이블을 먼저 읽을지를 결정하는 것이 중요 - INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 조인의 순서를 조절해서 다양한 방법으로 최적화를 ..
View - 데이터베이스에 존재하는 ‘가상의 테이블’ - 실제 행과 열을 가지고 있지만 데이터를 저장하고 있지는 않음 - 테이블처럼 물리적으로 저장되는 것은 아님 - join이나 subquery와 같이 여러 개의 테이블을 참조하여 데이터를 조회 할 때 번거로움을 줄일 수 있음 - 단 MySQL에서 View는 단지 다른 테이블이나 View에 있는 데이터를 보여주는 역할만 수행 - View와 Table의 차이점은, Table은 실질적인 데이터가 있지만 View는 데이터가 없고 SQL만 저장한다. View 장점 - 특정 사용자에게 테이블 전체가 아닌 필요한 필드만(보안성) 보여줄 수 있음 - 복잡한 쿼리를 단순화해서 사용할 수 있음 - 쿼리를 재사용할 수 있음 - 여러 방법의 데이터 조회에 알맞은 다양한 구조..
Index - 책의 찾아보기(index, 색인)와 같이 원하는 내용을 바로 찾을 수 있도록 지원 - 테이블의 데이터 조회 시 동작속도를 높여주는 자료구조 - 데이터의 위치를 빠르게 찾아주는 역할 - 컬럼의 값과 레코드가 저장된 주소를 키와 값의 쌍으로 인덱스를 만들어 둠 - MYI(MySQL Index) 파일에 인덱스 저장 Index의 문제점 - 책의 모든 페이지에 나오는 단어를 찾아보기에 표시하게 되면 찾아보기의 분량이 엄청나게 많아져 오히려 본문보다 두꺼워지는 상황이 발생 - 필요 없는 index를 만들면 데이터베이스가 차지하는 공간만 늘어나고, index를 이용하여 덷이터를 찾는 것이 전체 테이블을 찾는 것 보다 느려짐 - 데이터베이스의 공간을 차지하므로 추가적인 공간 필요(DB크기의 10% 정도의..