본문 바로가기

백앤드 개발

(47)
[Spring boot] 서블릿, JSP을 활용한 MVC 패턴 *** 프론트 컨트롤러 패턴 *** 지금까진 서블릿을 컨트롤러로 하고 jsp 를 뷰로하는 mvc 패턴을 사용했다 이번 시간엔 프론트 컨트롤러 패턴을 도입해 다음 공통 기능을 처리한다. FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아 호출 httpservlet request 상속, 어노테이션 등 공통된 기능해 처리함 따라서 프론트 컨트롤러를 제외한 나머지는 서블릿을 사용할 필요가 없음 스프링 웹 MVC의 핵심도 바로 FrontController *** v1 프론트 컨트롤러 도입 *** 목표: url 이 진입하고 요청 별로 맞는 컨트롤러를 호출하는 프론트 컨트롤러를 구현 개발순서: 1. interface Control..
[AWS] VPC, EC2, EBS, S3, ASG 실습 1. 실습 순서 1) AWS VPC 생성 2) AWS EC2 생성 3) PPK 변환 및 서버 접속 확인 4) EC2 - EBS 연동 5) EC2 - S3 연동 6) ASG 생성 및 부하에 따른 테스트 7) Clear 작업 2. AWS VPC 생성 목표: - 가상의 네트워크 VPC를 생성 - VPC 의 공간을 서브넷으로 영역 분리 - 인터넷 게이트웨이를 VPC 공간 내 서브넷과 연결 더보기 사용할 리전 선택 AWS vpc dashboard 에서 vpc 생성 리소스, 이름, CIDR 등을 설정 VPC 메뉴 중 서브넷 > 서브넷 생성 클릭 * 서브넷: 네트워크에서 주소 공간을 분할하는데 사용. 네트워크를 장치/시스템/접근권한 별로 구분 - 서브넷 이름 설정: test-subnet-01 - 가용 영역: 기본 설..
[Spring 프로젝트] 프로젝트 설계 1일차 회의 내용 안건 내용 비고 주제 선정 리그오브레전드 전적 및 듀오 검색 사이트 구현 기능 1) 메인 페이지 - 전적 검색란 - 최근 검색한 소환사_session - 게시글별 인기글 2) 회원가입 및 로그인 - 네이버 API / 유효성 검사 - 주소 API, 아이디 중복 검사 등 유효성 검사 3) 마이페이지 - 내 정보 - 라이엇 계정 연동 및 취소 4) 자유 게시판 - CRUD 기능 구현 - 추천, 비추천 - 댓글 및 대댓글 (작성 또는 삭제) - 인기글 상단 또는 개념글로 표기 - 검색 필터: 제목/제목+내용/내용/작성자 5) 듀오 게시판 - 본인 티어 표기, 선호 포지션 선택 - 검색 필터: 티어/포지션 - 댓글 및 대댓글 6) 5 vs 5 게시판 - 시간 timestamp? 지정 (자유, 가능시간대..
[Java] 참조형 변수 1. 참조형 변수 참조형변수는 객체의 주소를 저장 배열, 열거, 클래스, 인터페이스 타입 등이 있음 package lec01; import java.util.Date; public class DataType03 { public static void main(String[] args) { // new Date를 통해 객체를 생성하고 생성된 객체를 today라 명명 Date today = new Date(); } } 2. 메모리 사용 영역 1) 힙 영역 객체, 참조형 변수는 힙 영역에 생성된다. 힙 영역은 JVM 스택 영역을 참조한다. 사용하지 않는 객체는 가비지콜렉터에 의해 자동으로 제거된다. 2) 스택 영역 기본 변수는 스택 영역에 생성된다. 변수는 선언된 블록 안에서만 존재하고 블록을 벗어나면 스택에서..
[Spring boot] 회원, 주문 프로젝트 - 스프링으로 전환 1. AppConfig 변경 @Configuration 을 붙여 스프링 컨테이너에 등록 각 메서드마다 @Bean 을 붙여 스프링 빈으로 등록 ... import ... @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public MemberRepository memberRepository() { retu..
[Spring boot] 회원, 주문 프로젝트 - 객체 지향 원리 적용 1. 문제점 public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 할인정책 변경시, OrderServiceImpl 클래스를 고쳐야 함 이때 1) 인터페이스 뿐만 아니라 구현 클래스에도 의존: DIP 설계원칙 X 2) 기능 변경 시, 코드에 영향을 줌: OCP 설계 원칙 X 따라서 인터페이스에만 의존하도록 의존 관계를 변경하고 기능 변경시 코드에 영향을 주지 않도록 외부에서 구현 클래스를 주입해줘야 ..
[Spring boot] 회원, 주문 프로젝트 - 설계 및 구현 1. 비즈니스 요구사항 정의 회원 - 회원 가입, 조회 기능 - 회원은 일반 / VIP 등급 - 어떤 DB를 사용할지는 미정 주문 정책 - 회원은 상품을 주문할 수 있음 - 회원 등급에 할인 정책 적용 - VIP 의 경우 1000원 할인 해주는 고정 할인을 해주는 정책이 있으나 추후 바뀔 수도 있음 2. 회원 도메인 설계 비즈니스 요구 사항대로 설계 1) 도메인 협력 관계 2) 클래스 다이어그램 3) 객체 다이어그램 3. 회원 도메인 개발 순서 회원 가입 / 회원 조회 1) member/Grade : 회원등급, enum 데이터 타입을 통해 상수값의 집합을 나타냄, 상수를 그룹화하고 명시. 2) member/Member: 회원 엔티티, 필드값과 Getter, Setter 정의 3) member/Member..
[AWS] Putty Fatal Error: No supported authentication methods available 1. 문제 EC2 생성 후 Putty를 통한 SSH 접속 과정에서 에러 발생 "Putty Fatal Error: No supported authentication methods available" 또는 "Server refused our key" 2. 해결방법 putty 재설치 3. 해결 과정 1. 호스트 아이디가 잘못 입력? or 변경? NO ec2 인스턴스에 사용되는 호스트 아이디가 잘못되었거나 따로 설정되어있는지 확인 그러나 AMI 별 호스트 네임이 바뀌는 경우는 거의 없음 Amazon Linux: ec2-user, Ubuntu: ubuntu 2. 키 페어 재생성 또는 프라이빗 키 형식 변경 (.pem > .ppk)? NO ec2 와 키페어를 재생성하거나 프라이빗 키 파일 형식을 .pem 에서 .p..