1. ORM(Object Relational Mapping)이란? ORM은 객체와 관계형 데이터베이스를 매핑해주는 기술이다. 이는 객체 간의 관계를 바탕으로 SQL 자동 생성하여 객체 지향과 관계형 데이터베이스 간의 패러다임 불일치 문제를 해결해준다. ORM의 장단점은 아래와 같다. 장점 객체지향적인 코드 SQL Query가 아닌 메소드로 데이터 조작 가능하기 때문에 생산성 증가 객체에 대한 코드를 별도로 작성하여 코드 가독성 증가 재사용 및 유지보수 편리성 증가 DBMS에 대한 종속성 저하 RDBMS의 데이터 구조와 객체지향 모델 사이의 간격 좁힐 수 있음 DBMS를 교체하는 큰 작업에도 리스크가 적고 드는 시간이 줄어듦 단점 복잡한 쿼리문의 경우 SQL문으로의 사용이 더 직관적일 수 있음 프로젝트 규..
Spring에서 의존성 주입(DI: Dependency Injection)을 하는 방법은 크게 3가지가 있다. 여기서 의존성 주입은 필요한 객체를 직접 생성하는 것이 아니라 외부에서 객체를 생성해서 넣어주는 방식이다. 1. Field Injection Field injection은 의존성을 클래스 멤버 필드로 직접 주입하는 방식으로 @Autowired, @Inject 같은 주입 어노테이션을 사용한다. 비교적 코드가 간결하다는 장점을 가지고 있지만 외부에서 접근이 불가능하다는 등의 여러 문제점을 가지고 있어서 Spring 공식 문서에서도 Field injection 말고 Constructor injection 방식을 이용할 것을 권장하고 있다. 이에 대한 자세한 이유는 뒤에서 살펴보자. @Controlle..
1. API란? API는 Application Programming Interface의 약자로 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘이다. 간단하게 말해서 요청과 응답을 사용하여서 두 애플리케이션을 서로 연결하여 통신하는 방법을 정의하는 것이 API이다. API의 역할은 아래와 같이 크게 3가지로 나누어 볼 수 있다. 1) 서버와 데이터베이스에 대한 출입구 역할 데이터베이스에는 중요한 정보들이 저장되기 때문에 접속을 통제해야 한다. API는 이를 방지하기 위해서 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다. 2) 프로그램끼리의 통신 가능 API는 스마트폰 어플이나 프로그램 등의 통신 매개체 역할을 수행한다..