목록분류 전체보기 (73)
delpho
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nDwLX/btrFchOx7ad/Fj7bIIOH7lJOkRuaY9Kig0/img.png)
_1. 데이터베이스에서 인덱스를 사용하는 이유 및 장단점에 대해 설명해주세요. 더보기 데이터베이스에서 인덱스를 사용하는 이유는 검색 성능을 향상시키기 위함이다. (검색 성능을 실질적으로 향상시키기 위해서 해당 쿼리가 index를 사용하는지, 카디널리티 또는 selectivity와 같은 요소들이 고려된 인덱스가 생성되어야 한다.) 인덱스를 사용하여 얻을 수 있는 장점으로는 빠른 검색 성능이 있고, 단점으로는 인덱스를 구성하는 비용 (추가, 수정, 삭제 연산시 인덱스를 형성하기 위해 필요한 추가적 연산)이다. 인덱스를 생성할 때 트레이드 오프 관계에 놓여있는 요소들을 종합적으로 고려하여 생성해야 한다. # 인덱스란? 데이터베이스의 테이블에 대한 검색 속도를 향상시켜주는 자료구조 테이블의 특정 컬럼(Colum..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bx8DeE/btrE758XEWc/Pmze4EtcsBeGKvvF2kWty0/img.png)
1. 스프링의 장점 (각 장점에 대해 자세히 기술할 것) # 스프링의 장점 1. POJO 기반의 구성 개발할 때, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않음 Java코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용할 수 있음 자유롭게 객체지향적 설계를 구현 가능 높은 생산성과 유연한 테스트를 할 수 있다 2. DI을 통한 객체 관계 구성 IoC Container를 통해 객체 간의 느슨한 결합을 유지 유지보수가 편리해짐 3. 관점 지향 프로그래밍 (AOP) 메소드를 개발할 때 비즈니스 메소드마다 반복되는 공통로직을 분리 개발자가 비즈니스 로직에 집중 가능 공통 로직은 외부의 클래스로 분리 + 코드에 명시적으로 표시하지 않고 선언적으로 처리 공통 기능을 분리함으로써 응집도가 높..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcmiTL/btrEuPFO16B/ryXsmxWcSDMPZZUCphIwM0/img.jpg)
1. 강한 결합과 느슨한 결합이 무엇인지 설명해주세요. # 의존성 어떤 클래스A가 다른 클래스(B) 또는 B의 인터페이스를 이용할때 A가 B에 의존한다고 한다. A는 B없이 작동할 수 없음 여기서 A는 dependant / B는 dependency라고 함 dependant는 자신의 dependencies들에게 의존 의존성이 높다는건(강하다는건) A객체를 수정했을때, 그 객체와 결합된 B에서도 코드를 수정해야되는 경우가 생기는 것 이때, 두 클래스는 결합(coupled)되어 있음. 두 클래스 사이의 결합은 강할수도, 느슨할 수도 있음 의존성이 강한지 약한지에 따라 달림 의존성, 결합은 방향이 존재 A가 B에게 의존한다고해서 B가 A에 꼭 의존적인것은 아님! # 결합도 서로 다른 모듈 간에 상호 의존하는 정..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kXCrh/btrECBmtcHF/8ur8RCKgegiBpiL9zclgFk/img.png)
1. SOLID(객체지향 5대원칙)에 대해서 설명해주세요. # 객체지향 프로그래밍의 5가지 설계 원칙 (SOLID) SOLID = 객체지향 프로그래밍을 하면서 지켜야하는 5대 원칙 SRP(단일 책임 원칙), OCP(개방-폐쇄 원칙), LSP(리스코프 치환 원칙), DIP(의존 역전 원칙), ISP(인터페이스 분리 원칙) SOLID 원칙을 철저히 지킨다면? 시간이 지나도 변경 용이 유지보수와 확징이 쉬운 프로그램 개발 가능 1. SRP (단일 책임 원칙, Single Responsibility Principle) 하나의 모듈은 한 가지 책임을 가져야 한다는 것 즉, 모듈이 변경되는 이유가 한가지여야 함 어떤 클래스가 단 하나의 책임 만을 갖고 있다면, 특정 액터로부터 변경을 특정할 수 있으므로 해당 클래스..