본 내용은 AWS에서 제공하는 "AWS 공인 솔루션스 아키텍트 – 어소시에이트(2018년 2월 릴리스)"에 대한 시험 안내서를 주관적으로 해석한 내용임! 소개 AWS 공인 솔루션스 아키텍트 – 어소시에이트(2018년 2월 릴리스) 시험은 솔루션스 아키텍트 역할을 수행하는 개인을 대상으로 합니다. 이 시험에서는 수험생이 AWS 기술을 기반으로 안전하고 강력한 애플리케이션을 설계 및 배포하는 방법에 대한 지식이 있음을 효과적으로 입증할 수 있는지 확인합니다. 이 시험에서는 수험생이 다음을 수행할 수 있는지 확인합니다. 고객 요구 사항을 기반으로 아키텍처 설계 원칙을 사용하여 솔루션을 정의 모범 사례 기반으로 프로젝트 수명 주기 전반에 걸쳐 조직에 구현 지침을 제공 AWS 지식 권장 사항: AWS에서 비용 효..
스프링을 통해 많이 알려진 제어의 역전(IoC)이란 용어는 개발자가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게되는 소프트웨어 디자인 패턴을 말한다. 즉, 제어의 권한이 다른 대상에게 위임하는 구조이다. 재사용 라이브러리의 흐름 제어란 결국 프레임워크(framework)에 대한 내용으로 결론 즈음에 다시 이야기 하겠지만 제어의 역전이란 개념은 스프링에 국한되지 않고 모든 프레임워크에 필연적으로 적용되는 일반적인 개념이다. 전통적인 프로그램에서 흐름은 개발자가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 반면 제어의 역전이 적용된 구조에서는 외부 라이브러리의 코드가 개발자가 작성한 코드를 호출한다. 여기서 프레임워크와 라이브러리를 분명하게 구분해서 사용해야 한다. 개발된 코드를 ..
이전 1.1에서 초난감한 Dao를 작성해 보았다. 이 Dao의 문제점은 코드의 중복이 발생되어 추가되는 메소드나 Dao 클래스 마다 동일한 내용의 코드를 반복시켜주어야 했다. 또한 커넥션 연결 정보에 대해 너무 긴밀히 연결되어 있어 변화에 대해 자유도가 부족해 보였다. 이런 문제점을 해결하기 위해 중복된 코드를 추상 메소드로 만들어 분리하고 이에 대한 구현을 자유롭게 상속받아 구현하도록 변경해 보자. UserDao.java public abstract class UserDao { public abstract Connection getConnection() throws ClassNotFoundException, SQLException; public void add(User user) throws Class..
사용자 정보를 DB에 넣고 관리할 수 있는 DAO 클래스를 만들어 보자. 우선 사용자 정보를 저장하고 조회하는 기능의 add() 메소드와 get() 메소드를 구현해 보았다. UserDao.java public class UserDao { public void add(User user) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8", "testuser", "1234"); PreparedStatement ps = c.pr..
객체간 결합도를 낮추기 위하여 직접 객체를 생성하지 않고 객체 생성 전담 Class에게 위임하는 형태의 패턴을 Factory Method Pattern이라 부른다. 위임을 받는 Class는 Interface로 구현되어 유지보수의 편리성과 확장성을 확보할 수 있다. (* 기존 Part2 패키지를 Package Explorer에서 복사하여 Part3로 변경하고 시작한다.) 3.1 Write 인터페이스를 생성한다. Write.java package part3; public interface Write { public void doWrite(); } 3.2 Write 인터페이스를 구현하여 FreeBoardWrite 클래스를 수정한다. FreeBoardWrite.java package part3; public c..
1장에서 만들었던 글쓰기 객체를 필요에 의해서 자유게시판 글쓰기 객체로 변경하려 한다. Write Class를 FreeBoardWrite로 클래스명을 바꿔본다. (* 기존 Part1 패키지를 Package Explorer에서 복사하여 Part2로 변경하고 시작한다.) FreeBoardWrite.java package part2; public class FreeBoardWrite { private String boardName; public FreeBoardWrite() { // 변경 해야 하는 부분 this.setBoardName("free Board"); } public String getBoardName() { return boardName; } public void setBoardName(Strin..
스프링의 개념을 익히기 위하여 콘솔을 이용해 게시판에 글을 쓸 수 있는 간단한 예제 프로그램을 먼저 작성해본다. main > java 밑에 part1이라는 패키지를 생성하자. (향후 해당 패키지를 계속 복사해 내용을 append해가며 사용할 예정이다.) Write.java - 글쓰기 객체 package part1; public class Write { private String boardName; public Write() { this.setBoardName("free Board"); } public String getBoardName() { return boardName; } public void setBoardName(String boardName) { this.boardName = boardName..
** 개발환경 JDK : 1.8 Tool : STS Version: 3.8.1 RELEASE 이상 (Tomcat은 추후 설치 예정) 0.1 프로젝트 생성 new > Spring Legacy Project > Project name 입력 > Templates에서 Simple Projects의 Simple Spring Maven 선택 후 Finish 혹시 pom.xml에서 오류가 날 경우 C:/User/사용자이름/.m2 폴더를 삭제한 뒤 메이븐 업데이트를 다시 받는다. (업데이트 시 해당 폴더가 다시 생성됨)