반응형

1. 올바른 괄호

 

설명

괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.

(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.

입력

첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.

출력

첫 번째 줄에 YES, NO를 출력한다.

예시 입력 1 

(()(()))(()

예시 출력 1

NO

 


접근 방법

스택이 무엇인지 알고, 간단한 메소드만 사용하면 끝이다.

스택이란, 한쪽 끝에서만 데이터를 넣고 다른 한쪽에서는 데이터를 출력할 수 있도록 만든 자료구조.

흔히 후입선출이라고 부르는 LIFO(Last In, First Out) 구조이다.

 

import java.util.*;

class Main{
	public String solution(String str) {
		String answer = "YES";
		Stack<Character> stack = new Stack<>();
		for(char x : str.toCharArray()) {
			if(x=='(')	stack.push(x);
			else {
				if(stack.isEmpty())	return "NO";
				stack.pop();
			}
		}
		if(!stack.isEmpty())	return "NO";
		return answer;
	}
	
	public static void main(String args[]) {
		
		Main T = new Main();
		
		Scanner sc = new Scanner(System.in);
		
		String b = sc.nextLine();
		System.out.println(T.solution(b));
		
	}		
}

 


이 글의 문제는 인프런 강의에서 참고하였습니다.

 

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 - 인프런

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

반응형
반응형

 

 

6. 최대 길이 연속부분수열

설명

0과 1로 구성된 길이가 N인 수열이 주어집니다. 여러분은 이 수열에서 최대 k번을 0을 1로 변경할 수 있습니다. 여러분이 최대 k번의 변경을 통해 이 수열에서 1로만 구성된 최대 길이의 연속부분수열을 찾는 프로그램을 작성하세요.

만약 길이가 길이가 14인 다음과 같은 수열이 주어지고 k=2라면

1 1 0 0 1 1 0 1 1 0 1 1 0 1

여러분이 만들 수 있는 1이 연속된 연속부분수열은

이며 그 길이는 8입니다.

 

입력

첫 번째 줄에 수열의 길이인 자연수 N(5<=N<100,000)이 주어집니다.

두 번째 줄에 N길이의 0과 1로 구성된 수열이 주어집니다.

 

출력

첫 줄에 최대 길이를 출력하세요.

 

예시 입력 1 

14 2
1 1 0 0 1 1 0 1 1 0 1 1 0 1

 

예시 출력 1

8

 

 

 


접근 방법

입력 자연수 N의 크기가 100,000까지 있는 것과, 배열 하나를 전체 순회하는 경우를 생각하면 two pointer 방법으로 문제를 해결하는 것이 좋다. 이중 for문을 써서 O(n^2)의 시간 복잡도 보다, O(n)이 훨씬 빠르기 때문이다.

그리고 슬라이딩 윈도우(sliding window)를 통해, 두 개의 포인터가 가르킨 부분의 겹치는 영역의 길이를 구하여 답을 도출한다.

 

1. lt, rt를 어떻게 순회할지 지정하고, 최대 길이를 rt - lt + 1로 두어 answer의 값을 구한다.

 

2. rt가 순회한 곳의 배열 값이 0이라면 무조건 1로 바꾼다고 생각한다. 그리고 cnt를 1씩 증가한다.

이때, cnt가 k보다 클 때는 while문을 통해 배열값이 0이라면 cnt를 감소하고 lt를 증가한다.

만약 배열값이 1이라면 cnt는 유지한 채로 lt를 증가하여 왼쪽의 포인터가 오른쪽으로 가는 것을 구현한다.

 

import java.util.*;

class Main{
	public int solution(int n, int k, int[] a) {
		
		int answer=0, cnt = 0, lt = 0;
		for(int rt = 0; rt < n; rt++) {
			if(a[rt] == 0) cnt++;
			while(cnt > k) {
				if(a[lt] == 0) cnt--;
				lt++;
			}
			answer = Math.max(answer, rt - lt + 1);
		}
		
		return answer;
	}
	
	public static void main(String args[]) {
		
		Main T = new Main();
		
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		int k = sc.nextInt();
		int[] A = new int[n];
		for(int i = 0; i < n; i++) {
			A[i] = sc.nextInt();
		}
		
		System.out.println(T.solution(n, k, A));
		
	}		
}

 

Key Point

문제에서 주어진 0을 1로 바꾼다고 했는데, 굳이 바꾸는 그 부분을 구현할 필요는 없다.

배열의 원소를 0에서 1로 바꾸는 과정을 구현하지 않고도, 투 포인터와 슬라이딩 윈도우를 통해 원하는 값을 도출할 수 있다.


이 글의 문제는 인프런 강의에서 참고하였습니다.

 

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 - 인프런

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

반응형
반응형
return answer.stream()
		.mapToInt(Integer::intValue)
		.toArray();

 

흠... 아직 자료구조와 스트림에 대한 공부가 더 필요한 것 같다.

반응형
반응형
import java.util.*;

class Main{
	public static void main(String args[]) {
		
		Map<String, Integer> map = new HashMap<>();
		map.put("일이삼", 123);
		map.put("사오육", 456);
		map.put("칠팔구", 789);
		
		// for Each
		map.forEach((key, value) -> {
			System.out.println(key + " " + value);
		});
	}		
}

java 8 이상 부터는, map을 for Each문을 사용하여 순외할 수 있다고 한다... 신기신기!

이제 굳이 System.out.print 다 써가면서 할 필요가 없다! 

반응형
반응형

설명

오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램을 작성하세요.

입력

첫 번째 줄에 첫 번째 배열의 크기 N(1<=N<=100)이 주어집니다.

두 번째 줄에 N개의 배열 원소가 오름차순으로 주어집니다.

세 번째 줄에 두 번째 배열의 크기 M(1<=M<=100)이 주어집니다.

네 번째 줄에 M개의 배열 원소가 오름차순으로 주어집니다.

각 리스트의 원소는 int형 변수의 크기를 넘지 않습니다.

출력

오름차순으로 정렬된 배열을 출력합니다.

예시 입력 1 

3
1 3 5
5
2 3 6 7 9

예시 출력 1

1 2 3 3 5 6 7 9

 


접근 방법

우선, 출력값을 보니 중복을 허용하는 것을 알 수 있다. 그렇다면 Collection 프레임워크의 sort 메소드를 사용한다 해도, set은 안되겠다고 생각했다. 그래서 list를 활용하거나, 단순 구현을 통해 해결 할 수 있다고 생각했다.

 

1. 단순 구현 (two pointer)

 

import java.util.*;

class Main{
	
	public ArrayList<Integer> solution(int N, int M, int[] arr1, int[] arr2) {
		
		ArrayList<Integer> answer = new ArrayList<>();
		int p1 = 0;
		int p2 = 0;
		
		while(p1 < arr1.length && p2 < arr2.length) {
			if(arr1[p1] < arr2[p2]) answer.add(arr1[p1++]);
			else answer.add(arr2[p2++]);
		}
		while(p1 < arr1.length) answer.add(arr1[p1++]);
		while(p2 < arr2.length) answer.add(arr2[p2++]); 
		
		return answer;
	}
	
	public static void main(String args[]) {
		
		Scanner sc = new Scanner(System.in);
		Main T = new Main();

		int N = sc.nextInt();
		int[] arr1 = new int[N];
		
		for(int i = 0; i < N; i++) {
			arr1[i] = sc.nextInt();
		}
		
		int M = sc.nextInt();
		int[] arr2 = new int[M];
		
		for(int i = 0; i < M; i++) {
			arr2[i] = sc.nextInt();
		}
		System.out.println(T.solution(N, M, arr1, arr2));
	}		
}

 

 

2. sort를 활용한 방법

import java.util.*;
import java.io.*;
public class Main {
    static int N, M;

    public static void main(String args[]) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter((System.out)));

        LinkedList<Integer> list = new LinkedList<>();

        StringTokenizer st = new StringTokenizer(br.readLine());

        N = Integer.parseInt(st.nextToken());
        String []str = br.readLine().split(" ");

        for (int i = 0; i < N; i++) {
            list.add(Integer.parseInt(str[i]));
        }

        st = new StringTokenizer(br.readLine());
        M = Integer.parseInt(st.nextToken());
        String[] str1 = br.readLine().split(" ");
        for (int i = 0; i < M; i++) {
            list.add(Integer.parseInt(str1[i]));
        }

        Collections.sort(list);

        for (int x : list) {
            System.out.print(x + " ");
        }
    }
}

 

강의에 나온대로 풀이를 풀어도 되고, 두번째 방법은 백준 스타일로 문제를 풀어봤다.

이렇게 유연하게 대처할 수 있어야 실제 코테에서는 잘 해결할 수 있으니까..!!

물론, 대부분의 기업이 프로그래머스에서 시험을 치기 때문에, 직접 입력값과 출력값을 넘기는 부분까지는 하지 않아도 된다. 그래도 손코딩 하다보면 더 잘 이해가 되는 경향이 있으니까, 귀찮아도 반복 또 반복하는 게 좋다.


이 글의 문제는 인프런 강의에서 참고하였습니다.

 

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 - 인프런

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

 

반응형
반응형

 

설명

학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.

투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다.

선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작성하세요.

반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다.

 

입력

첫 줄에는 반 학생수 N(5<=N<=50)이 주어집니다.

두 번째 줄에 N개의 투표용지에 쓰여져 있던 각 후보의 기호가 선생님이 발표한 순서대로 문자열로 입력됩니다.

 

출력

학급 회장으로 선택된 기호를 출력합니다.

예시 입력 1 

15
BACBACCACCBDEDE

 

예시 출력 1

C

 


 

접근 방법

우선, 입출력 될 값들을 구분한다.

입력 : n (HashMap key의 개수), str(HashMap key의 값)

출력 : HashMap의 value 중에서 가장 큰 값(max)

 

 

import java.util.*;
 
class Main{
	public char solution(int n, String s) {
		char answer = ' ';
		HashMap<Character, Integer> map = new HashMap<>();
		for(char x : s.toCharArray()) {
			map.put(x, map.getOrDefault(x, 0) + 1);
		}
		int max = Integer.MIN_VALUE;
		for(char key : map.keySet()) {
			if(map.get(key) > max) {
				max = map.get(key);
				answer = key;
			}
		}
		return answer;
	}
	public static void main(String args[]) {
		
		Scanner sc = new Scanner(System.in);
		Main T = new Main();
		int k = sc.nextInt();
		String str = sc.next();
		System.out.println(T.solution(k, str));
	}		
}

 


HashMap에 대한 간단한 분석

해쉬맵은, 자바의 Map 인터페이스의 구현체 중 하나이다. 그래서 Map의 특성인 key : value 특성을 그대로 가지고 온다.

 

위 그림과 같이 HashMap은 내부에 키와 값을 저장하는 자료 구조를 가지고 있다. 해시 함수를 통해 키와 값이 저장되는 위치를 결정하므로, 그 위치를 알 수 없고 삽입되는 순서와 들어 있는 위치 또한 관계가 없다.

(삽입한 순서에 따라 정렬되지 않는다.)

 

알고리즘 문제를 풀 때, HashMap 자료구조를 사용하며 자주 사용되는 함수들이 몇 가지 있다. 간단하게 정리해보자.

get(), getOrDefault(), keySet()

 

get() 함수

get()함수는 매개변수(괄호안에)의 value 값을 찾아서 출력한다.

 

HashMap<Character, Integer> map = new HashMap<>();
map.put('A', 1);
map.put('B', 2);
map.put('C', 3);
map.put('D', 4);
map.put('E', 5);

System.out.print(map.get('A'));
System.out.print(map.get('B'));
System.out.print(map.get('C'));
System.out.print(map.get('D'));
System.out.print(map.get('E'));

// 12345 출력

 

getOrDefault()함수

이 함수는 알고리즘을 풀 때 빈도가 높은 함수니까 잘 봐두는 것을 권장한다. 

getOrDefault는 HashMap의 key가 있으면 그  키의 value를 가져오고, key가 없으면 무엇을 반환할지 사용자가 설정할 수 있다.

HashMap<Character, Integer> map = new HashMap<>();
for(char x : s.toCharArray()) {
    map.put(x, map.getOrDefault(x, 0) + 1);	//key가 있으면 value를 반환하고, 없으면 0을 반환한다. 그리고 + 1 을 하여 카운팅
}

for(char key : map.keySet()) {
    System.out.println(key + " " + map.get(key));
}

// 아래와 같은 값 출력
A 3
B 3
C 5
D 2
E 2

 

여기서, getOrDefault(x, 0) + 2 를 한다면, value의 값들이 1씩 증가해서 나올 것이다.

또한, getOrDefault(x, 1) + 1 를 한다면, key값이 없을 때 0이 아닌 1을 반환하여 나온다.

 

keySet() 함수

keySet() 함수는 HashMap에 저장되어 있는 key 값을 출력해준다.

HashMap<Character, Integer> map = new HashMap<>();
    
map.put('A', 1);
map.put('B', 2);
map.put('C', 3);
map.put('D', 4);
map.put('E', 5);

for(char key : map.keySet()) {
    System.out.print(key + " ");
}

// A B C D E 출력

 

 

 


이 글의 문제는 인프런 강의에서, HashMap에 대한 분석은 아래 블로그에서 참고하였습니다.

 

https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%ED%85%8C%EB%8C%80%EB%B9%84/dashboard

 

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 강의 - 인프런

자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성

www.inflearn.com

https://lordofkangs.tistory.com/78

 

[자료구조] HashMap 파헤치기 1 (Linked List + Red Black Tree)

나는 HashMap이 잘 이해되지 않았다. 인덱스가 없으니 배열이나 List에 비해 확실히 더 어렵고 직관적으로 이해하기가 힘들었다. 그래서 오늘 HashMap 자료구조가 어떤 원리로 돌아가는지 파헤쳐볼까

lordofkangs.tistory.com

https://velog.io/@db_jam/Java-%ED%95%B4%EC%8B%9C%EB%A7%B5HashMap-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%A0%95%EB%A6%AC

 

[Java] 해시맵(HashMap) 자료구조 정리

해시맵은 이름 그대로 해싱(Hashing)된 맵(Map)이다. 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다.

velog.io

 

반응형
반응형

MVC 패턴이란?

개발자가 웹 페이지를 만드는 걸 생각해보자. 서로 다른 이름을 가진 사용자 수가 3명일 때, 웹 페이지는 총 3개일...수도 있다. 하지만 만약 9999명이 된다면? 사실 100명만 되도, 개발자는 복사 붙이기(일명 복붙)을 100번 해야 하는 셈이다. 이를 해결하고자 MVC 패턴이라는 것을 만들었고, 홈페이지를 보여주는 뷰(View)와, 사용자의 요청을 서버에서 처리하는 컨트롤러(Controller), 데이터를 관리하는 모델(Model) 방식을 만들기 시작했다.

 

 

1. 뷰 템플릿 생성하기

이제, MVC 패턴을 인텔리제이 환경에서 실행해 보자. 우선, 머스태치를 활용하여 뷰 템플릿을 만든다. 여기서 머스테치란, 다양한 언어를 화면에 제공하는 템플릿 엔진이라고 생각하면 된다.

 

src -> resources -> templates -> 우클릭 new -> file 클릭 -> first.mustache 생성

 

여기서 확장자에 .mustache를 적었음에도 수염과 같은 아이콘 모양이 나오지 않아도 걱정하지 말자.

인텔리제이의 왼쪽 상단에 file -> settings -> plugin -> mustache를 클릭하여 설치해주면 된다.

 

 

자, 빈 화면이 나오지 않았는가?

여기서 doc를 누르고 tab 버튼을 누르면, 다음과 같은 html 코드가 자동으로 생성된다.

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>

 

head의 <title>태그는 웹 페이지의 제목을 나타낸다. 참고로, 왼쪽에 보이는 네이버의 아이콘은 파비콘이라고 하며, 이것도 설정할 수 있으나 여기서는 생략하겠다! <title> 태그 사이에 내가 원하는 웹 페이지의 제목을 적어보자.

그리고, <body> 태그 안에 <h1> 태그를 달고, 원하는 말을 넣어보자. 필자는 이렇게 했다. 그리고 {{username}}은 변수를 받아오는 형식이다. 이를 통해, 앞서 말했던 '각 사용자 마다 페이지를 만드는 것'을 하지 않고, 원하는 변수만 바꾸어 하나의 페이지에 여러 형식을 보일 수 있다.

 

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Spring boot 연습</title>
</head>
<body>
    <h1>Hell로 월드!!!!</h1>
    <h2>{{username1}}님, 스프링 부트 열심히 하셔야죠??</h2>
    <h2>{{username2}}님, 네카라쿠배 가야죠~~</h2>
</body>
</html>

 

 

2. 컨트롤러

뷰 페이지를 설정했으니, 그 화면을 볼 수 있도록 요청을 처리해주는 컨트롤러를 만들어보자.

com.example.practice 우클릭 -> package -> com.example.practice.controller 입력 -> FirstController.class 생성

 

package com.example.practice.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller //이 객체가 컨트롤러임을 알게 해주는 어노테이션
public class FirstController {

    @GetMapping("/hi")  //URL 요청 접수
    public String helloWorld(Model model) {
        model.addAttribute("username1", "김철수");
        model.addAttribute("username2", "김영희");
        return "first"; //first 머스테치 반환
    }
}

 

여기서 @를 사용한 "어노테이션"을 볼 수 있다.

어노테이션이란, 소스 코드에 추가적으로 사용하는 메타 데이터의 일종이다. 코드를 서버에서 어떻게 처리해주어야 하는지 명시해주는 목적으로 사용된다.

 

@Controller는, 이 객체가 컨트롤러임을 명시한 어노테이션

@GetMapping("/hi")는, Client로 부터 URL을 요청 받았을 때, 아래 메소드가 실행되도록 하는 조회 어노테이션이다.

 

helloWorld 메서드의 매개변수는 Model로, MVC 패턴의 M을 담당하는 모델이다. 만약 빨간 줄이 뜬다면 alt + enter를 사용하여 import 해주면 된다. 

 

코드를 다 작성하고, 서버를 실행하면 다음과 같은 로그를 볼 수 있는데, Tomcat started on port 8081을 보면 8081 포트에서 서버가 실행된 것을 확인할 수 있다. 그러나 대부분의 사람들은 8080 포트에서 서버가 동작할 것이다. 스프링 부트는 톰캣이라는 것에 담겨서 실행되므로 다음과 같은 로그가 뜬다. 

 

localhost:8081/hi 에 접속하여 내가 원하는 뷰 페이지가 나오는지 확인해보자. 

만약 한글이 깨져서 나온다면,  src -> main -> resources -> application.properties 파일에서 다음과 같은 코드를 넣어주자.

server.servlet.encoding.force=true

 

뷰 페이지 완성

 

원하는 페이지를 출력한 것을 확인할 수 있다.

반응형
반응형

https://start.spring.io/

해당 링크에 들어가서 스프링부트를 실행할 수 있는 환경을 만들자.

 

Project : Gradle - Groovy

Language : Java

Spring Boot : 3.2.2

Project Metadata -> Artifact : Practice

Dependencies : H2, spring boot web, mustache

반응형
반응형

 

전자공학을 전공하다가 프로그래밍에 흥미를 느끼게 된 나.. 근데, 생각보다 실력이 늘지 않아서 작심삼일을 거듭했다. 

그 유명한 김영한 선생님의 인프런 강의도 결국 80%를 채우고 손을 놓았는데.. 음... 역시 국비교육을 들으면서 개인 프로젝트 + 취준 (원서 73개 냈음)을 병행하는 건 무리였다. 결국 2023 하반기 취업에 성공을 못했다.

 

서류 합격을 했으나 코테 합격률은 0%.... 코테 보면 항상 0솔 하거나, 겨우 1솔~ 2솔에 머무는 수준이었다. 내가 좀 심각하구나..를 느끼며, 개인 프로젝트와 코테를 병행해야겠다고 생각했고, 비교적 난이도가 쉬운 홍팍시리즈를 선택하게 됐다.

 

내돈 내산이며, 이 책을 기점으로 꼭 취업할 수 있길 바란다!!

 

화이팅~~

 

https://www.yes24.com/Product/Goods/119952151

 

코딩 자율학습 스프링 부트 3 자바 백엔드 개발 입문 - 예스24

스프링 부트 백엔드 개발,실습 문턱을 낮추고 자신 있게 시작하자!스프링 부트를 처음 접하는 입문자와 이미 공부했지만 부족하다고 느끼는 분들을 위한 책입니다. 게시판을 만들며 클라이언트

www.yes24.com

 

반응형
반응형


1. File -> Settings
2. 검색창에 Gradle 검색
3. Gradle -> Intellij로 변경

 

추가 정보

인텔리제이는 왜 느린 Gradle을 디폴트값으로 했을까?? Gradle 공식 홈페이지를 보면 다음과 같다

 

"결과적으로 CI (Continuous Integration) 서버에서 동일한 테스트 결과를 얻습니다"

 

 

반응형

+ Recent posts