728x90
반응형

개발 97

[크래프톤 정글 5기] 첫 프로젝트를 마무리하며

4일 전 3월18일 월요일에 아침 7시20분 버스를 타고 수원으로 왔다. 기숙사 키와 정글 로고가 그려진 후드집업과 반팔을 받고, 기숙사에 짐을 풀고, 필요한 물품을 사고. 점심 먹고 14시부터 입소식이 시작되었다. 입소식이 마무리된 16시경부터 생각을 정리할 새도 없이 갑작스럽게 첫 미니프로젝트가 시작되었다. 팀원은 나까지 총 3명. 주제는 "어떤 식으로든 돌아가는 웹 서비스 만들기". 주어진 시간은 3박 4일. 하지만 3박 4일이라고 해도 첫날은 16시부터 시작했고 두번째날은 중간중간 행사가 있어 흐름이 끊겼고, 세번째날만 온전히 집중할 수 있는 날이었다. 게다가 마지막 4일째는 13시30분이 발표였다. 즉.. 말이 3박4일이지 사실상 2박3일이나 다름없었다. 개발이라곤 스프링 CRUD게시판 클론코딩..

스프링 입문 - 회원 서비스 테스트

회원 서비스 개발에 이어, 개발한 회원 서비스를 테스트할 차례다. 테스트를 수행할 MemberService에서, Ctrl + Shift + T를 누르고, Create New Test를 누른다. 그러면 이런 창이 뜬다. 테스트 클래스 이름도 본래 클래스 이름에 Test만 붙여서 자동으로 작성해 준다. 내가 테스트하고 싶은 메소드를 아래에서 체크해서 OK를 누른다. 그러면 이렇게 테스트에 필요한 틀을, 적절한 위치(경로)에 아주 쉽게 만들어준다. 일단 만들어진 테스트가 문제가 없는지, 현재 상태에서 바로 한번 돌려본다. 다행히 문제는 없다. 본격적으로 테스트 케이스를 작성해 보기 전에, 잠깐 MemberService로 가보자. 기존 코드를 변경해서, 이렇게 생성자를 통해 외부에서 리포지토리를 주입받도록 변경..

스프링 입문 - 회원 서비스 개발

도메인, 리포지토리를 만들었으니 서비스를 만들 차례이다. hello.hellospring.service 패키지를 만들고, service 패키지 아래에 MemberService 클래스를 만들자. 서비스는 리포지토리와 함께 동작해야 하니, 미리 만들어두었던 리포지토리 객체를 만들어 주자. 회원가입 메소드인 join이다. member 객체를 매개변수로 받아서 리포지토리에 저장하고, 저장한 객체의 Id를 리턴한다. 단, 중복된 name을 가진 회원은 가입할 수 없도록 검증하는 과정이 있다. 바로 밑에 선언해둔 validateDuplicateMember가 중복을 검사하는 메소드이다. name을 기준으로 리포지토리에서 회원을 찾아서, 해당 회원이 이미 존재한다면 "이미 존재하는 회원입니다" 예외를 출력하고 메소드는..

[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

[Baekjoon/JAVA] 백준 9086번 문자열

정해진 횟수만큼 문자열을 입력받고, 문자열의 맨 앞과 맨 뒤에있는 문자열을 출력해야 합니다. import java.io.*; import java.util.*; 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()); for(int i=0; i "A" str.charAt(3) -> "D" 이런 결과가 나오게 됩니다. 이렇게 charAt()함수를 이..

Algorithm/문자열 2023.06.30

[Baekjoon/JAVA] 백준 14659번 한조서열정리하고옴ㅋㅋ

n개의 봉우리(활잡이)가 존재합니다. 각 봉우리는 높이가 다르고, 높은 봉우리에 있는 활잡이가 낮은 봉우리를 처치할 수 있습니다. 공격은 오른쪽으로만 진행되고, 더 높은 봉우리를 만날 시 패배합니다. 이 때 가장 많은 적을 처치하는 봉우리는 몇명의 적을 처치할 수 있는지 출력해야 합니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); Stri..

[Baekjoon/JAVA] 백준 10811번 바구니 뒤집기

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.readLine()); int n = I..

[Baekjoon/JAVA] 백준 10810번 공 넣기

1번~N번의 바구니가 있다. 1번~N번의 공이 있다. 공 갯수는 제한이 없다. i번부터 j번까지의 바구니에, k번이 적힌 공을 넣는다. 이 과정은 총 M번 진행되며, 만약 바구니에 공이 이미 있을 경우 새로운 공으로 교체된다. 입니다. 결국 각 바구니에 마지막으로 남아있는 공이 몇번 공인지 출력해야 합니다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = ..

728x90
반응형