webserver 6

회원 도메인과 리포지토리 만들기

1. 회원 도메인 만들기 domain 패키지 생성하고 그 안에 Member 클래스 생성 Id는 시스템에서 저장할 때 자동으로 지정되는 id값을 의미한다. (기본키와 비슷하게 사용될 것이다.) 2. 리포지토리 만들기 * 인터페이스 이전에 말했던 것과 같이 어떤 DB를 사용할 것인지를 아직 정하지 못했으므로 차후에 DB가 정해진다면 끼워맞추기 위해 인터페이스로 구현 * 구현체 filter를 통해 루프를 돌면서 하나라도 입력받은 name과 member.getName()이 같은게 있다면 return 해준다. 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려

회원 관리 예제 - 1. 비지니스 요구사항 정리

비지니스 요구사항 정리 데이터 회원ID, 이름 기능 회원 등록, 조회 아직 DB가 선정되지 않음. (가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비지니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비지니스 도메인 객체 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 클래스 의존관계 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용

API

들어가며 API(Application Programming Interface) “API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.” 쉽게 말해 프로그램 간의 데이터 정보를 주고받을 수 있도록 도와주는 매개체 정도로 생각을 하면 될듯하다. 이는 JSON이라는 데이터 표준 포멧을 통하여 주고받는다. @ResponseBody? 뷰 리졸버를 사용하지 않고, HTTP에 직접 return값을 보내겠다는 의미 Body는 html에서의 body를 의미하는 것이 아니라, HTTP에서의 BODY를 의미한다. HTTP = HTTP Heade..

MVC와 템플릿 엔진

MVC? Model View Controller 과거에는 jsp를 통하여 View에서 모든 것을 다 처리했었음 ==> Model 1 방식 각 기능들을 쪼개어 그 기능에만 집중시키는 방향으로 발전한 것. View는 화면을 그리는데에 모든 기능과 역량을 집중시켜야하고, Controller나 Model은 비지니스 로직이나 내부적인 것들을 처리하는 것들에 집중해야함. MVC 패턴 사용하기 Controller / Model View 저번에 model과 view를 만들어 매핑을 통해 model을 전달했던 것과 같은 형태이다. 단 이번에는 @RequestParam을 통하여 매개변수name을 입력받도록 하였다. 이것의 옵션을 살펴보면 required가 기본은 true이다.(true면 값을 넘겨줘야함. false면 넘겨..

빌드하고 실행하기

나는 윈도우 사용자이므로 intelliJ에서 기본 terminal로 cmd가 적용되어 있는데, 리눅스 명령어를 사용하기 위해 기존에 깔려있던 git bash를 기본 terminal로 바꾸어 사용했다. 1. ./gradlew build 빌드를 실행하는 명령어 2. cd build 빌드 완료후 생성된 build 폴더로 들어감 ==> 빌드 폴더 내부의 모습이다. 3. cd libs 4. ls -arlth ( -arlth는 모든 파일, 폴더를 시간 역순으로 출력) 5. java -jar hello-spring-0.0.1-SNAPSHOT.jar 빌드된 것을 실행시킴. 우리가 앞서 run as를 통해 실행시킨 결과와 동일한 결과를 얻을 수 있다. localhost:8080으로 접속했을 때 웹서버가 정상적으로 동작중..

반응형