1. SOLID SOLID란 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리한 것이다. 각 의미는 다음과 같다. SRP (Single responsibility principle): 단일 책임 원칙 OCP (Open/closed principle): 개방/폐쇄 원칙 LSP (Liskov substitution principle): 리스코프 치환 원칙 ISP (Interface segregation principle): 인터페이스 분리 원칙 DIP (Dependency inversion principle): 의존관계 역전 원칙 2. Single responsibility principle 단일 책임 원칙이란 하나의 클래스는 하나의 책임만 가져야한다는 것이다. 하나의 책임이란 클 ..
BackEnd
1. 객체 지향의 특징 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록이 아닌 여러 개의 독립된 단위인 "객체"들의 모임으로 취급하는 것이다. 각 객체는 메시지를 주고받거나, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들어주기 때문에 대규모 소프트웨어 개발에 사용된다고 한다. 이때 유연하고 변경이 용이하다는 것이 객체 지향의 중요한 특징 중 하나인 다형성이다. 일단 객체 지향의 주요 특징은 아래와 같은 것들이 있다. 추상화: 추상이란 사전적 의미로 "사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것"이다. 객체 지향에서도 비슷 맥락으로 추상화란 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 말한다. 예를 들어, 강..
1. 스프링이란? 스프링은 스프링 하나가 아니라 여러 기술들의 모임이다. 핵심이 되는 스프링 프레임워크, 여러 기술을 편리하게 사용하도록 도와주는 스프링 부트 이외에도 스프링 데이터, 스프링 세션, 스프링 시큐리티 등 여러 가지가 존재한다. 스프링은 아래와 같이 문맥에 따라 다른 의미를 나타내기도 한다. 스프링 DI 컨테이너 기술 스프링 프레임워크 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 기술들 2. 스프링 프레임워크 가장 중요한 것은 스프링 프레임워크다. 스프링 프레임워크는 여러 기술들의 집합이다. 스프링 DI 컨테이너, AOP, 이벤트 등의 핵심 기술, 스프링 MVC 등의 웹 기술, 트랜잭션, JDBC, ORM 지원 등 데이터 접근 기술, 캐시, 이메일, 원격 접근 등의 기술 통합, ..
1. EJB의 사용 2000년대 초반에는 자바 진영의 표준 기술 중에 EJB(Enterprise Java Beans)라는 것이 있었다. 지금으로 따지면 spring과 jpa를 합쳐놓은 세트였고, 자바 표준 기술이었기 때문에 금융권 등에서 많이 사용했다. EJB는 트랜잭션 관리, 컨테이너 지원 등 여러 장점이 있었지만 너무 복잡하고 느리기까지 했다. 또 EJB에 의존적으로 구현하다보니 코드도 복잡해지고 어떻게 동작하는지도 이해하기 힘들었다. 2. 스프링 및 하이버네이트의 등장 EJB를 사용하던 개발자 중 한 명인 로드 존슨(Rod Johnson)은 EJB를 비판하며 어떤 식으로 단순하게 코드를 작성할 수 있는지 책을 내게 된다. 이것이 미래의 스프링이 된다. 그리고 EJB 엔티티빈이라는 ORM 기술을 대체..
1. EC2 생성 먼저 EC2 인스턴스는 아래 설명한 방식으로 생성하자. [AWS] EC2란? (인스턴스 유형, 구매 옵션, 생성 방법) 1. EC2란? EC2는 AWS에서 가장 기본적이면서 널리 쓰이는 인프라이며 인터넷에 연결된 가상 서버를 제공한다. EC2를 사용하면 클릭 몇 번으로도 서버를 생성할 수 있어 실제 서버를 구축하는 것보다 ngp9440.tistory.com 2. RDS 생성 및 spring 설정 방법 RDS 생성 및 spring 설정 방법은 아래 포스팅을 참고하자. 배포하려는 spring mvc 서버는 RDS를 사용하고 있기 때문에 EC2환경에서 따로 MySQL을 다운 받아 사용하지 않는다. 방법은 아래 포스팅을 참고하자. [RDS, JDBC] RDS(MySQL)와 JDBC 연결하기 1..
1. RDS 생성 RDS 생성은 아래 정보를 참고하자. [RDS, JDBC] RDS(MySQL)와 JDBC 연결하기 1. 프리티어 RDS 요금 RDS는 MySQL, MariaDB 와 같은 서비스로 프리티어는 아래와 같은 기능을 무료로 제공한다. 매월 MySQL, MariaDB, PostgreSQL 데이터베이스를 실행하는 Amazon RDS 단일 AZ db.t2.micro, db.t3.micro ngp9440.tistory.com 2. MySQL workbench 설치 RDS에서 설치한 버전에 맞는 MySQL workbench를 다운받는다. 최신 버전의 경우 자신의 os에 맞는 최신 버전을 다운받으면 되지만 구버전의 경우 archive를 사용해야 한다. 현재 글 작성시 최신 버전은 8.0.33이고 RDS는..
1. 프리티어 RDS 요금 RDS는 MySQL, MariaDB 와 같은 서비스로 프리티어는 아래와 같은 기능을 무료로 제공한다. 매월 MySQL, MariaDB, PostgreSQL 데이터베이스를 실행하는 Amazon RDS 단일 AZ db.t2.micro, db.t3.micro 및 db.t4g.micro 인스턴스 사용량 750시간 매월 SQL Server(SQL Server Express Edition 실행)를 실행하는 Amazon RDS 단일 AZ db.t2.micro 인스턴스 사용량 750시간 20GB의 범용(SSD) DB 스토리지 자동 데이터베이스 백업과 사용자 실행 DB 스냅샷을 위한 백업 스토리지 20GB 자세한 설명은 아래 공식 페이지를 확인하자. Amazon RDS 프리 티어 | 클라우드 ..
1. 문제 상황 "ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed"는 스프링 설정 파일 구성 문제로 인해 발생하는 에러다. 내 경우 tomcat 실행 후 spring 컨테이너가 처음 구동될 때 해당 문제가 발생했다. 2. 해결 방법 내 경우 web.xml에 applicationContext.xml 파일의 설정이 잘 되어있지 않아 발생했다. 수정한 web.xml은 아래와 같이 applicationContext.xml 파일과 dispatcher-servlet.xml 파일 두 스프링 설정 파일에 대한 경로를 잘 설정하고 있다. (즉, 내 경우 applicationContext.xml의 경로를 추가하지..