2022(112)
-
회원 관리 예제 - 회원 서비스 개발
회원 리포지토리랑 도메인을 활용해서 실제 비즈니스 로직을 작성한다. 특히, 서비스 클래스는 비즈니스에 가까운 용어로 메소드를 만들어야한다. 보통 서비스는 비즈니스에 의존적으로 설계하고, 리포지토리는 개발적으로 용어 선택한다. 간단하게 회원가입 + 중복회원의 경우 회원가입 불가 조건, 회원조회 기능을 서비스화 해볼 예정이다. 회원가입 + 중복회원 조건 추가 Optional로 묶은 회원 정보에서 중복 데이터가 있는지 확인 하는 과정은 아래와 같이 간단하게 메소드로 만들 수 있다. 전체 회원 조회 및 회원 조회
2022.07.30 -
회원 관리 예제 - 회원 리포지토리 테스트케이스 작성
개발한 기능을 실행해서 테스트할 때, 자바의 main 메서드를 통해서 실행하거나 웹 애플리케이션의 컨트롤러를 통해 해당 기능을 실행한다. 그러나 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행이 어려우며, 여러 테스트를 한번에 하기 어렵다는 단점이 있다. 그래서 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. 아래의 예제는 save 메소드가 잘 작동하고 있는지를 테스트 해보고 있다. 1. 도메인인 member 객체를 만들고, 사용자로부터 이름을 입력받는다. 2. 저장소에 저장하여, findById로 멤버의 아이디값과 동일한 저장소(repository)의 회원 id를 찾는다. 3. 저장소에 저장된 id가 실제 회원에게 생성된 id와 동일한지 확인해본다. 이어서 fi..
2022.07.27 -
회원 관리 예제 - 회원 도메인과 리포지토리 만들기
Member라는 도메인에 id와 name 값을 받는 변수를 생성 1. member의 정보를 저장하는 sava 2. id 값 저장 3. name 저장 4. 모든 회원 정보를 List로 저장 save : 회원명은 입력받고, Id 값은 시스템 상에서 생성한다. findById : store로부터 id 값 받은 것을 반환 findByName : 여러 이름 중에서 입력받은 name 과 동일한 member의 이름 하나 반환 findAll : member 값이 리스트 형태로 반환
2022.07.27 -
회원 관리 예제 - 비즈니스 요구사항 정리
데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 DB : 아직 RDB로 할지, NoSQL로 할지 데이터 저장소가 선정되지 않은 상태 컨트롤러 : 웹 MVC의 컨트롤러 역할, API 만들때 컨트롤러 역할 서비스 : 비즈니스 도메인 객체를 이용해서 핵심 비즈니스 로직 구현 ( Ex : 회원정보 중복 제거 로직 등) 리포지토리 : DB 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 ( Ex : 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리된다.) MemberService : 회원 비즈니스 로직 MemberRepository : 회원 저장소 (아직 데이터 저장소가 결정되지 않았기 때문에 인터페이스로 설계) Memory MemberRepository : 간단한 메모리 구현체..
2022.07.27 -
스프링 웹 개발 기초
정적 컨텐츠 서버에서 하는것 없이 파일 그대로 웹브라우저에 그대로 뿌려주는 것 위와 같이 html에서 작성한 그대로 화면으로 뿌려준다. localhost:8080/hello-static.html을 들어가게되면, 내장 톰캣 서버에서 요청을 먼저 받게 된다. 첫번째로 Controller 단에서 먼저 hello-static 컨트롤러가 있는지 확인한다. 없는 경우에는 resources 폴더에서 찾게된다. MVC와 템플릿 엔진 가장 흔하게 사용하는 방식으로 JSP 같은게 템플릿 엔진이 된다. 서버에서 프로그래밍을 해서 html을 동적으로 바꿔서 내리는 방식으로 이를 하기 위해서 MVC 사용 MVC = Model + View + Controller 이전에는 View에서 Controller의 역할까지 한번에 하였다...
2022.07.26 -
14499 - 주사위 굴리기
이번 문제는 해석만 잘 하면 쉽게 풀리는 문제였다... 하지만 처음에 정육면체인 주사위의 움직임을 어떻게 표현하는가에 대한 고민을 많이 해야했다. 이것만 해결되면 쉽게 풀리는 문제... 나는 방향에 따른 주사위의 움직임이 아래와 같음을 찾아냈다. 이를 리스트로 나타낸 후, 각 움직임에 따른 주사위 번호의 위치를 변화시켰다. 그리고 문제 해석상의 시행착오를 한번 겪었는데... 문제에서 "주사위는 지도의 바깥으로 이동시킬 수 없다. 만약 바깥으로 이동시키려고 하는 경우에는 해당 명령을 무시해야 하며, 출력도 하면 안 된다." 문구가 있는데, 난 처음에 주사위를 굴려서 지도 밖으로 이동 하는 경우에는 이후 명령인 지도가 0인 경우에는 주사위의 아랫면 수를 복사하고, 0이 아닌 경우 지도상의 숫자를 주사위 아랫..
2022.07.26