728x90
반응형

java 32

스프링 입문 - 회원 리포지토리 테스트 케이스 작성

개발한 코드가 잘 동작하는지 확인하기 위해서는, 테스트 케이스를 작성하여 확인해야 한다. 자바는 JUnit 이라는 프레임워크를 제공하여, 테스트를 효율적으로 실시할 수 있게 해준다. 우선 테스트 케이스를 작성할 패키지를 만들어 주자. 주의해야 할 점은, 앞서 코드를 작성했던 "Main" 디렉터리 밑이 아닌 그 아래에 있는 "test" 디렉터리 아래에 만들어야 한다는 점이다. test 디렉터리 밑에서, hello.hellospring.repository 패키지를 만들어 주자. repository 패키지 아래에 MemoryMemberRepositoryTest 클래스를 만들어 주자. 우리는 MemoryMemberRepository를 테스트할 것이기 때문에, 뒤에 Test만 붙여서 생성하는 것이다. 테스트 클래..

Development/Spring 2023.11.01

스프링 입문 - 회원 도메인과 리포지토리 만들기

우선, 도메인을 구현할 패키지인 hello.hellospring.domain 패키지를 만들자. domain 패키지 하위에, Member 클래스를 만들자. 그리고 위와 같이 도메인 역할을 할 Member 클래스를 작성해 주자. 비즈니스 요구사항에서, 데이터는 회원ID, 이름 2가지였다. 그 역할을 해줄 id, name 필드를 선언하고 getter setter를 작성한 것이다. 다음은 repository 패키지를 만들어 주자. repository 패키지 하위에, MemberRepository "인터페이스"를 만들자. 위와 같이 인터페이스를 작성해주자. 여기서 구현을 할 수는 없고, 추상 메소드 4개를 선언했다. 이것은 MemoryMemberRepository라는 구현 클래스에서 구현할 것이다. reposit..

Development/Spring 2023.10.29

스프링 입문 - 비즈니스 요구사항 정리

본격적으로 개발을 하기 앞서, 우선 비즈니스 요구사항을 정리해야 한다. 복잡한 비즈니스 로직을 배우는 것이 아닌, 스프링이 어떻게 돌아가는지를 이해하기 위함이므로 가장 쉬운 비즈니스 요구사항을 택할 것이다. 일반적인 웹 애플리케이션 계층 구조는 이렇다. 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현. 도메인을 이용한 서비스, 기능, 로직 그 자체를 의미 리포지토리(저장소): 데이터베이스에 접근하고 도메인 객체를 DB에 저장하고 관리함. 도메인: 비즈니스 도메인 객체. 회원, 주문, 쿠폰 등등. DB에 저장되고 서비스로써 이용될 것들. 비즈니스 요구사항 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않은 상태라는 가정 ( 어떤 DB를 사용할지 정해..

Development/Spring 2023.10.29

스프링 입문 - MVC와 템플릿 엔진

MVC : Model, View, Controller Model : 데이터나 비즈니스 로직을 나타냄, 사용자 정보, 주문 정보 등 모두 모델이라고 할 수 있다. View : 사용자에게 데이터를 출력하고 인터페이스를 생성한다. Controller : 모델에 필요한 작업을 수행하고, 그것을 뷰로 전달하여 사용자에게 출력하도록 한다. 컨트롤러인 HelloController 파일을 열자. 새로운 페이지를 만들것이다. HelloController 파일에 코드를 추가하자. 기존 코드에 아래쪽 helloMvc 메소드 부분을 추가하면 된다. 웹에서 hello-mvc 주소로 접속하면 해당 코드가 실행된다. "name" 이라는 이름의 파라미터에 사용자로부터 입력값을 받아야 한다. 또한 View에, 입력받은 "name"값을..

Development/Spring 2023.10.24

Java 클래스의 구성 (필드/생성자/메소드)

클래스는 객체를 만들기 위한 "설계도"와 같다. 클래스라는 설계도를 이용해서 "객체"를 만들 수 있다. 클래스는 필드, 생성자, 메소드로 구성되어 있다. 이것이 "Ysk" 클래스이다. 4행의 int x는 필드이다. 필드는 객체의 데이터를 저장하는 역할을 한다. 또한 반드시 클래스 레벨에서 선언되어야 한다. (생성자, 메소드 등의 실행블록 안에 들어가 있으면 안 된다) 필드는 객체 내부의 생성자, 메소드에서 호출하여 사용할 수 있고, 객체 외부에서도 사용할 수 있다. 필드는 일반적인 변수(로컬 변수)와 비슷하고, 그렇게 이해해도 문제는 없지만 분명한 차이가 존재한다. 로컬 변수는 실행블록 내(메소드 내, 생성자 내 등등)에서만 사용이 가능하지만, 필드는 해당 객체의 모든 생성자, 메소드, 그리고 객체 외부..

Development/Java 2023.10.15

스프링 입문 - 프로젝트 생성

인프런에서 김영한님 스프링 입문 강의를 완강했다. 스프링은 완전히 처음이라 정말 어려웠지만, 완강하고 나니 대략적인 틀이 보이는 것도 같다. 그러나 정신없이 듣느라 전혀 체득하지 못한것 같아서, 강의를 다시 복습하며 글로 정리해 보려고 한다. https://start.spring.io/ 링크로 접속하면, 위와 같은 화면이 뜬다. 스프링 프로젝트를 쉽게 시작할 수 있도록 스프링에서 제공하는 기능이다. 간단한 설정을 한 후, 다운로드 받으면 쉽게 스프링을 시작할 수 있다. 위와 같이 설정한 후, 아래 GENERATE 버튼을 누르면 다운로드할 수 있다. 자바 버전이 다른경우 스프링 가동이 되지 않으니, 잘 확인해야 한다. 오른쪽 Dependencies(의존성) 부분은, 우린 웹개발을 할 것이니 Spring W..

Development/Spring 2023.07.30

[Baekjoon/JAVA] 백준 10813번 공 바꾸기

1번~N번의 바구니가 있고, 각 바구니엔 번호에 해당하는 공이 들어 있습니다. i, j번 바구니에 들어있는 공을 바꿉니다. 이것을 M번 반복한 후, 각 바구니에 몇번 공이 들어있는지 출력하는 문제입니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; st = new StringTokenizer(br.read..

[Baekjoon/JAVA] 백준 10815번 숫자 카드

주어지는 숫자의 범위가 매우 크기 때문에, 일일이 비교하는 방법보다는 이분 탐색 알고리즘을 이용해야 합니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; int n = Integer.parseInt(br.readLine()); int cards[] = new int[n]; st = new StringTok..

[Baekjoon/JAVA] 백준 1032번 명령 프롬프트

입력받은 문자열들의 각 문자를 모두 비교하여, 모두 같지 않다면 해당 문자를 ?로 바꾸는 문제입니다. 모두 같다면 문자를 그대로 출력합니다. 입력받는 문자열들의 길이는 동일합니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int n = Integer.parseInt(br.readLine()); String arr[] = new Strin..

Algorithm/문자열 2023.06.30

[Baekjoon/JAVA] 백준 10988번 팰린드롬인지 확인하기

입력받은 문자열이 팰린드롬인지 확인하는 문제입니다. 앞에서 읽을때와 뒤에서 읽을때의 결과가 같으면 팰린드롬입니다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String str = br.readLine(); int start = 0; int end = str.length()-1; int result = 1; while(start < end..

Algorithm/문자열 2023.06.30
728x90
반응형