본문 바로가기

Java125

스프링 테스트 코드 스프링 테스트 코드 Test 폴더에서 테스트를 진행한다 @SpringBootTest class WeatherApplicationTests { @Test void contextLoads() { } } @SpringBootTest : 테스트를 위한 자바 파일이라는 것을 명시 @Test : 이 어노테이션이 없으면 테스트를 할 수 없다 Junit 테스트 코드를 작성할 때에 자주 사용하는 라이브러리다 세부적으로 테스트를 하는 라이브러리다 assert 종류 설명 assertSame(a,b) 객체 a, b가 같은 객체임을 확인하고 객체 자체를 비교한다 assertEquals(a,b) 객체 a, b가 일치함을 확인하고 객체에 정의된 equals를 통해 비교한다 asserArrayEquals(a,b) 배열 a와 b가 일.. 2023. 8. 30.
20230829 [Java] 문제풀이 20230829 [Java] 문제풀이 [프로그래머스] 양궁대회 아직 백트래킹, 완전 탐색이 많이 약한 것 같다 (그래도 전보다 어느 정도 생각을 할 수 있게 되었다) 먼저 shoot을 통해서 n번 동안 라이언이 쏠 수 있는 모든 경우를 배열로 구한다 그리고 compare을 통해서 라이언과 아파치가 맞춘 과녁을 비교하면서, 두 명의 점수를 비교해준다 import java.util.*; class Solution { public static int[] answer; public static int maxDif = 0; public static int[] lionArrow = new int[11]; public void shoot(int s, int limit, int[] info) { if (s == lim.. 2023. 8. 29.
스프링 패키지 구조 스프링 패키지 구조 기본적인 설명 Controller 에서는 클라이언트가 요청할 수 있도록 URL과 request Parameter 또는 request body를 설정해 놓는다 Service 에서는 Controller에서 받은 요청을 중간에서 로직으로 처리를 해준다 Repository 에서는 Service에서 만든 로직 바탕으로, DB에서 필요한 데이터를 쿼리문을 통해서 DB에 저장, 수정, 삭제 그리고 조회를 해준다 일반적인 패키지 구조 aop AOP 관련된 부분 - 핵심적인 관점, 부가적인 관점으로 나누어 보고 그 관점을 기준을 각각 모듈화 하는 것 config 각종 configuration 클래스로 구성이 되어 있다 controller HTTP 요청과 응답을 위한 클래스다 @Controller 어노.. 2023. 8. 29.
스프링 구동시키기 스프링 구동시키기 build.gradle 빌드 관리 도구로서, maven 또는 gradle을 선택할 수 있다 (gradle 더 최신) build.gradle은 빌드 구성 스크립트다 gradle에서 어떻게 빌드를 할지, 미리 써 놓은 스크립트다 build.gradle은 전에 선택한 의존성 (Dependency)와 같은 스프링 부트 프로젝트의 빌드와 관련된 설정 정보를 담고 있다 IDE는 이것을 읽어서, 스프링 부트 프로젝트를 설정한다 WeatherApplication에 들어간다 @SpringBootApplication public class WeatherApplication { public static void main(String[] args) { SpringApplication.run(WeatherAp.. 2023. 8. 28.
[스프링 부트 핵심 가이드] Chapter 3. 개발 환경 구성 스프링 부트 핵심 가이드 [스프링 부트 핵심 가이드] Chapter 3. 개발 환경 구성 자바 JDK 설치 (Java Development Kit) 자바 개발을 위해 설치가 필요한 키트다 OpenJDK 를 검색해서 JDK를 설치한다 https://jdk.java.net/java-se-ri/11-MR2 - Java 11 버전이지만, 왼쪽 창에 다른 버전들도 다운로드 받을 수 있다 환경 설정 윈도우 [제어판] - [시스템 및 보안] - [시스템]에 들어간다 [고급 시스템 설정]을 들어간다 [고급 시스템 설정]에서 [환경 변수] 버튼을 클릭한다 [시스템 변수]에서 [새로 만들기] 버튼을 클릭한다 JDK가 설치된 위치를 찾아 bin 경로를 넣어 준다 개인적으로 bin 경로를 넣지 않아도, 작동하고 있다 인텔리제.. 2023. 8. 28.
[스프링 부트 핵심 가이드] Chapter 1. 스프링 부트란? 스프링 부트 핵심 가이드 Chapter 1. 스프링 부트란? 1.1 스프링 프레임워크 📌스프링 프레임워크 (Spring Framework)는 자바 (Java) 기반의 엔터프라이즈급 어플리케이션 프레임워크다 자바로 어플리케이션 개발을 할 때 필요한 기능들을 제공하고, 쉽게 사용할 수 있도록 도와주는 도구다 엔터프라이즈급 개발이란, 대규모 데이터를 처리하는 환경에서 개발을 하는 것이다 (예. 카카오 같은 대기업에서 데이터를 처리할 때) ✔️ 제어 역전(IoC : Inversion of Control) 일반적으로 자바 개발을 할 때에는 사용하려는 객체를 선언하고 해당 객체의 의존성을 생성한 후 객체에서 제공하는 기능을 사용한다 @RestController public class NoDIController{ /.. 2023. 8. 27.
스프링 MVC 스프링 MVC Lombok 매번 기계적, 같은 코드를 작성하는 것을, 자동화해주는 라이브러리다 @Setter, @Getter : Java Bean 규약에 있는 setter, getter를 자동으로 생성해준다 @ToString : Object에 기본 구현되 ToString 대신 객체의 데이터를 보여주는 ToString을 자동으로 생성해준다 객체가 담고 있는 값들을 쉽게 출력할 수 있도록 도와준다 @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor : 객체 생성자를 자동으로 생성 @RequiredArgsConstructor : final 타입이 있으면, 생성자가 필수적으로 있어야 한다 @Data : Getter, Setter, ToString.. 2023. 8. 23.
20230822 [Java] 문제풀이 20230822 [Java] 문제풀이 [프로그래머스] 혼자 놀기의 달인 상자에 카드를 넣고 무작위로 섞어 일렬로 나열한다 그리고 상자를 1번부터 순차적으로 증가하는 번호를 붙인다 상자 번호에서, 카드 번호를 보고, 카드 번호에 대한 상자 번호를 여는 것이다 인덱스를 상자 번호라고 생각하면 카드 번호에 1을 항상 빼야한다 import java.util.*; class Solution { public int solution(int[] cards) { ArrayList group = new ArrayList(); int[] visited = new int[cards.length]; for (int i = 0; i < cards.length; i ++) { int tempCount = 0; if (visited.. 2023. 8. 22.
20230821 [Java] 문제풀이 20230821 [Java] 문제풀이 [프로그래머스] 두 큐 합 같게 만들기 이 문제는 두 큐가 주어지고, 서로의 원소를 주고 받으면서, 서로의 원소들의 값이 같을 수 있도록 만드는 것이다 제일 주의해야할 점은, 두 개의 큐가 있다는 것이다 서로 원소를 주고 받을 때에, 제일 먼저 큐에 들어온 원소를, 다른 큐에게 전달할 수 있다는 점이다 각 두 큐의 값을 구하고, 그 값에 따라, 값이 더 큰 큐에서, 더 작은 큐에게 원소를 주는 방식으로 로직을 짜면 된다 while문이 무한 루프에 빠질 수 있는 상황이 있어서, answer가 나올 수 있는 최대의 수를 정해준다 (answer > queue1.length * 4) 두 개의 큐의 합이 같으면, 바로 answer를 출력해준다 answer는 원소의 움직임의 개.. 2023. 8. 21.