이제 우리는 서비스를 화면에 띄우고 싶다. 이를 위해 MemberController 을 만들어야 하는데 이 컨트롤러는 전에 만든 MemberService를 통해 회원 가입, 데이터 조회 등이 가능해야한다. 이를 컨트롤러가 MemberService를 의존한다고 표현한다. 위와 같이 main -> java -> com.example.hellospringboot -> controller 에 MemberController 라는 Class를 만들어준다. 이 클래스에 위와 같은 코드 틀을 작성한다. Spring을 실행하면 스프링 컨테이너가 생기는데 이 때 @Controller 어노테이션이 있으면 해당 클래스의 객체를 생성하여 컨테이너에 넣어둔 후 Spring이 이를 관리한다. 이를 흔히 컨테이너에서 스프링 빈이 관..
이제 만든 회원 서비스를 테스트해보자. Intellij에 들어가서 만들어준 MemberService 클래스에 들어가서 ctrl+shift+T 를 누르면 새 테스트 생성하기라는 버튼이 나온다. 이를 클릭하면 위와 같은 화면이 나오고, 라이브러리 테스트 항목은 JUnit5로 해주고, 아래의 테스트 메서드 생성 칸에 모두 체크해준 뒤 확인을 누른다. 그러면 위와 같이 자동으로 MemberServiceTest 라는 클래스가 생성되는 것을 확인할 수 있다. MemberService memberService=new MemberService(); 우선 위와 같이 MemberServiceTest 클래스에 memberService라는 MemberService 객체를 만들어주자. 먼저 MemberService의 join ..
이제 회원 서비스를 개발해보자. main -> java -> com.example.hellospringboot 로 가서 service라는 Package를 하나 만들어주고, 그 안에 MemberService라는 Class를 하나 만들어주자. 이 클래스 안에 위와 같은 코드를 작성해 주었다. 먼저 이전에 작성해 주었던 MemberRepository 타입을 가지는 memberRepository 객체를 상수로 선언해준다. 일단 가입하려는 이름과 같은 이름이 이미 store에 저장되어 있으면 그 회원은 가입이 불가하도록 하는 로직을 구현해보았다. join함수는 ValidateDuplicateMember 함수를 실행하고 Member객체를 매개변수로 받는다. ValidateDuplicateMember 함수는 이전에 ..
문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에..
이제 회원 리포지토리가 잘 동작하는지 알아보기 위한 테스트케이스를 작성해보도록 하자. 개발한 기능을 실행하여 테스트 할 때 자바의 main 메소드를 통해 실행하거나, 웹 애플리케이션 컨트롤러를 통해서 해당기능을 수행하는 방법들도 있지만 이 방법들은 시간이 오래 걸리고, 반복 수행이 어렵고, 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 이 단점을 해결하기 위해 자바는 JUnit 이라는 프레임워크로 테스트를 실행한다. 먼저 test -> java -> com.example.hellospringboot 에 가서 repository 라는 package를 만들어준다. 그리고 이 패키지 안에 MemoryMemberRepositoryTest 라는 Class를 하나 만들어준다. 이 클래스에 위와 같은 테스트 ..
문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net import sys N,M=map(int,sys.stdin.readline().split()) num_list=list(map(int,sys.stdin.readline().split())) sum=[] sum.append(0) for x in range(1,N+1): sum.app..