목록분류 전체보기 (255)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzP5MK/btrpusLOAdZ/WSVnGKIhiZm7VL7sPujX80/img.png)
이번엔 스프링 빈을 직접 등록해보고 의존관계를 설정해볼 것입니다. 지난번엔 MemberService랑 MemberRepository를 만들고 서비스를 통해 회원을 가입할 수 있고 Repository에 저장이 되고 거기서 꺼내올 수 있는 로직을 만들었습니다. 또한 그것을 테스트하는 장치도 한 번 만들어 봤습니다. 그래서 이번엔, 화면에 어떻게 하면 이 데이터들을 출력하고 표기할 수 있을지, 제일 처음 배웠던 MVC 기억나시죠? 모델이랑 컨트롤러랑 View - Template이 필요합니다. 따라서 회원가입을 하고 회원 가입된 결과를 시스템에 뿌려주어야 합니다. 이를 위해서는 MemberController가 필요합니다. 이 MemberController가 MemberService를 통해서 회원가입하고 이를 통..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6gVuM/btrpaI9l2r0/5kKjx0expWTxWPi4K4bYEk/img.png)
이번에는 저번에 만들었던 회원 서비스 기능을 테스트를 할 것입니다. 테스트할 때에도 아주 유용한 단축키가 있습니다. 클래스에 마우스를 대고 Ctrl + Shift + T를 누르면 Create new Test가 뜹니다. name도 그대로 MemberServiceTest라고 자동 입력되어있으니 정말 편하네요. 밑의 join, findMembers, findOne을 모두 체크해주고 OK누릅니다. 그럼 이렇게 메서드가 생성됩니다. 자 하나씩 채워넣어 봅시다. 제일 먼저 회원가입이 잘 되는지 보겠습니다. 보통은 영어권에서 취업하지 않는한 국내 기업들은 메서드명을 쓸 때 한글 이름도 많이 씁니다. 언제까지고 영어도 못하는데 findmembers, findmember, savemember이렇게 메서드를 만들면 외국인..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rPWkm/btrpus5A37Z/tX2w2aJBQkvVvkjAifwkV0/img.png)
# 주소 https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.awt.*; import java.util.*; public class Main{ static int n, m; static int[][] arr; static int[] dx = {1,0,0,-1}; static int[] dy = {0,-1,1,0}; static boolean[][] visit; public static void..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bCgyYK/btro8wAl5Vl/IgpbrRHwTRvphnYVbWGv9K/img.png)
자 이제 이어서 회원 서비스 클래스를 개발해보려고 합니다. 회원 서비스는 회원 레포지토리랑 도메인을 활용해서 비즈니스 로직을 작성할 수 있습니다. 자 그래서 다음과 같이 service 패키지를 생성 후 클래스를 생성합니다. 회원 서비스를 만드려면 회원 레포지토리가 제일 우선적으로 있어야 합니다. 그래서 MemoryMemberRepository의 자식인 MemberRepository를 상속해서 가져옵니다. 여기서 MemberRepository가 인터페이스였고 MemoryMemberRepository는 부모 클래스였습니다. 그리고 이렇게 작성을 할 것인데, /**라고 입력하면 자동으로 파라미터 등을 입력하게끔 나옵니다. 또한 Id를 Long타입으로 선언했었기 때문에 return도 Long타입이 되어야 하므로..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bDuc2M/btroSJ79Kab/uvYNLq8XjOKty4oAYk5H11/img.png)
계속 이어서 테스트 케이스를 작성해봅시다. 지난 번에 테스트한건 save() 메서드에 대해서 테스트 해보았습니다. 이번엔 findByName()메서드를 한 번 테스트 해봅시다. 마찬가지로 save()메서드 아래에 findByName()메서드를 만들어서 연습을 해봅시다. 똑같이 test 어노테이션을 걸겠습니다. 그리고 여기서 꿀팁이 있는데, Shift + F6을 누르시면 아래 메서드의 메서드명만 바꿀 수 있습니다. 손쉽게 member2로 바꾸고 setName에는 22222를 넣어봅시다. 이렇게하면 11111이라는 회원과 22222라는 회원이 가입이 된겁니다. 이렇게 입력하면 result에 11111이라는 회원을 찾아서 꺼내옵니다. 그 다음에 이렇게 입력하고 돌리면 findByName()에 정상적으로 녹색불..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b2Teko/btroWnd3dl8/jWoIKVI4IyPYqbRKqNj4w1/img.png)
# 주소 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.*; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); while (n-- > 0) { String str = scan.next(); int num = scan.nextInt(); String x = scan.n..