https://www.youtube.com/watch?v=SSzsqDeS2JI 은혜로운 영한교수님의 강의 듣고 스프링을 차근차근 밟아보자-! ⚡️ Spring Initializr 를 통해 스프링부트 프로젝트 만들기 해당 사이트에서 내가 원하는 구성을 선택하여 스프링부트 프로젝트를 간단하게 만들 수 있다! https://start.spring.io/ 나의 프로젝트 구성 Project : Gradle Project Language : Java 11 Spring Boot : 2.7.5 Dependencies : Spring Web , Thymeleaf ⚡️ spring-boot-devtools 설치 (m1 mac 기준) 이 라이브러리를 추가할 경우, 컴파일만 하면 서버를 재시작하지 않아도 view 파일 변경이..
React로 프로젝트를 진행하려면 필수인것 같은 node.js에 대해 개념을 잡아보려고 한다. 💡 Node.js 란? JavaScript를 웹 브라우저가 아닌 PC에서도 독립적으로 실행시켜주는 도구 ⚡️ Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임으로 주로 서버사이드 애플리케이션 개발에 사용되는 소프트웨어 플랫폼 🥕 Node.js는 JavaScript를 사용해 개발한다. 🥕 Node.js는 서버사이드 스크립트 언어가 아닌 프로그램 환경이다. 🥕 Node.js는 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 Request 처리 성능을 가지고 있다. ➡️ 데이터를 실시간 처리하여 빈번한 I/O가 발생하는 SPA(Single Page Applicat..
Javascript 💡 Hoisting Hoisting 이란? : 변수나 함수의 선언이 유효한 스코프 내에서 코드 최상단으로 끌어올려지는 듯한 현상 ➡️ 자바스크립트 엔진이 전체 코드를 먼저 스캔한 후, 변수 선언 정보를 실행 컨텍스트에 기록해놓기 때문에 이러한 현상이 나타난다. ❗️호이스팅은 var 선언에서만 일어나는 듯 해 보이나 , 실제로는 const, let 에서도 이루어 진다. Hoisting 예제 (변수) 위의 예시를 보면 var 를 사용한 apple 은 undefined 라고 뜨고 , let 을 사용한 banana 는 레퍼런스 에러가 발생한다. 이 결과만 보면 var 선언은 호이스팅이 일어났기 때문에 에러가 나지않은 것 처럼 보이고, let 선언은 호이스팅이 일어나지 않아 에러가 난 것 처럼..
깃헙 잔디심기 프로젝트를 시작했는데 ...거참.. m1 맥 .. 어렵고 ... 어렵다 .. ^^ 단축키 사용법도 적어두고 사용해야 하는 맥린이기 때문에 오늘부터 차근차근 기록해두려고 한다. 터미널 명령어는 따로 포스팅 예정 [ 설치 순서 ] 1. Homebrew 설치 2. Git 설치 1. Homebrew 설치 m1 mac 에 Git 설치를 하기 전 Homebrew를 먼저 설치해줘야 한다. Homebrew는 맥에서 사용할 수 있는 패키지 매니저이다. 패키지 매니저를 설치해야 맥에서도 리눅스처럼 brew 명령어 한 번에 다양한 애플리케이션을 설치/사용이 가능하다. [m1 mac에서 Homebrew 설치방법] 검색창 (command + space ) 에서 "터미널" 검색 홈페이지 링크 : https://br..
public static int[] solution(int[] array, int[][] commands) { int a = 0; int b = 0; int c = 0; int[] answer = new int[commands.length]; for(int i = 0; i < commands.length; i++) { a = commands[i][0]; // i 여기부터 b = commands[i][1]; // j 여기까지 자르기 c = commands[i][2]; // k 여기의 수 int[] n_array = new int[b-a+1]; int s = 0; for(int k = a-1; k < b; k++) { n_array[s] = array[k]; s++; } Arrays.sort(n_array)..
import java.util.ArrayList; public class Main { public static void main(String[] args) { //int[] answers = {1, 2, 3, 4, 5}; int[] answers = {1, 3, 2, 4, 2}; solution(answers); } public static int[] solution(int[] answers) { int[] one = {1, 2, 3, 4, 5}; int[] two = {2, 1, 2, 3 ,2, 4, 2, 5}; int[] three = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; int[] score = {0, 0, 0}; for(int i = 0; i< answers.length; i+..
package algorithm; import java.util.Scanner; public class Main { public static void main(String[] args) { int a = 0; int b = 1; int c = 0; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); if(n == 1) { System.out.println(1); } else { for(int i=1; i=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치..
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int[] cards; cards = new int[N]; for(int i = 0; i < N; i++) { cards[i] = sc.nextInt(); } sc.close(); int max = 0; for(int i = 0; i < N-2; i++) { for(int j = i + 1; j < N-1; j++) { for(int k = j + 1; k < N; k++) { if(cards[i] + car..