전체 글

    스프링부트 환경 설정 및 에러 정리

    들어가면서 .. 해당 스프링부트 강의 강의를 들으며 정리한 내용 입니다. 기존에 학원에서 설치한 프로그램들이 설치 되어있는 상태 입니다. 프로젝트 환경 설정 프로젝트 생성 JAVA 11 설치 IntelliJ 또는 Eclipse 설치 스프링 부트 스타터 사이트 이동해서 스프링 프로젝트 생성 Gradle Project, 2.3.x 버전 Language : Java Packaging : Jar Java : 11 Progect Metadata groupId : hello / artifactId : hello-spring (강의용) 나머지는 그대로 Dependencies : Spring Web, Thymeleaf 스프링 부트는 기존에 썼던 스프링에서 설정해놨던 파일들을 자동으로 해놓음. 아주 간편! 위에서 받은 ..

    var, let, const

    JavaScript 에서 변수 선언시 var, let, const 를 사용하게 되는데, 이 차이점에 대해 알아보자. 1. var ( 변수 재선언 가능, 변수 재할당 가능) var v1 = 'v1'; console.log(v1);//v1 var v1 = 'v123'; console.log(v1);//v123 var로 선언한 변수는 중복해서 선언 및 초기화가 가능하다. (에러 X) 마지막에 할당된 값이 변수에 저장된다. 유연한 변수 선언으로 간단한 테스트에는 편리 할 수 있겠으나, 코드량이 많아 진다면 어디에 어떻게 사용 되는지 파악하기 힘들 뿐만 아니라, 값이 바뀔 우려가 있다. 💡 var은 function-scoped 단위로 hoisting이 일어난다. hoisting 이란 : '변수 선언문' 을 미리 ..

    request 와 response

    웹은 서버와 클라이언트로 구성되며 서로 간에 HTTP 프로토콜을 기반으로 동작한다. 클라이언트와 웹 서버 사이의 요청에 관련된 정보는 request객체에 저장되어 관리가 되며, 응답에 관련된 정보는 response 객체에 저장되고 관리된다. request, response는 개발자가 객체를 별도로 생성하지 않아도 JSP에서 바로 사용 할 수 있는 객체 라는 공통점을 가지고 있다. JSP 내장객체 로, request, response, out, page, config, application, pageContext, exception, session 이 있다. request - javax.servlet.http.HttpServletRequest 객체 클라이언트 요청시에 생성이 되며, 요청에 대한 처리가 완료..

    [JAVA] 유클리드 호제법_최소공배수, 최대공약수 구하기

    유클리드 호제법 이란? 유클리드 알고리즘 (Euclidean algorithm) 은 2개의 자연수의 최대공약수(GCD) 를 구하는 알고리즘 이다. 비교대상인 두 개의 자연수 a와 b에서 (이때, a>b) a를 b로 나눈 나머지를 r 이라고 했을때 GCD(a, b) = GCD(b, r) 이며, "r이 0이면 그때 b가 최대공약수이다." 라는 원리를 활용한 알고리즘 이다. 만약 r이 0이 아니라면 a에 b값을 다시 넣고, r을 b에 대입 한 후 다시 반복한다. 1) 반복문을 이용해서 최대공약수 구하기 int gcd(int a, int b) { //최대공약수 while(b!=0) { int r=a%b; a=b; b=r; } return a; } 2) 재귀함수를 이용해서 최대공약수 구하기 //재귀함수 사용 - ..

    Class 의 개념

    클래스의 개념을 알아보기에 앞서서 객체지향언어 을 잠깐 짚고 들어가보자. 객체지향이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.' 라는 것 이다. 이 기본 개념을 이용하여, 자바에서 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다. 자바 하면 객체 지향 언어, 객체 지향 프로그래밍 (OOP, Object-Oriented Programming) 가 떠오를 것 이다. 객체 지향 언어의 주요 특징은 다음과 같다. 1. 코드의 재사용성이 높다. : 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. : 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경..

    String s = "test"와 String s = new String("test")의 차이점

    String은 자바 개발자라면 자주 쓰게 되는 자료형 중 하나 이다. 해당 자료형은 불변성(Immutable) 이라는 성질을 가지고 있으며, 같은 값의 문자열에 대해서는 단 하나의 문자열 객체만을 생성하도록 설계되어 있다. 이러한 성질을 가지게 된 이유 중 하나의 가장 큰 장점은 성능 때문이다. 같은 값을 갖는 문자열 객체는 JVM의 객체가 생성되는 공간인 Heap에 매번 새로 생성하게 되면 메모리 공간적 측면에서 비효율적 이기 때문. 자, 다시 돌아와서 String은 두가지 생성 방식이 있고, 그에 따라 각각 차이점이 존재한다. new 연산자를 이용한 방식 리터럴을 이용한 방식 이번 포스팅은 new 연산자를 이용한 방식과, 리터럴을 이용한 방식의 차이점이 무엇인지 알아볼 것 이다. public clas..

    Map.getOrDefault(Object Key, Integer defaultValue)

    Map.getOrDefault(Object Key, Integer defaultValue) 💡 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환한다. 즉, 키 값이 몇번이나 사용되었는지 찾고싶을때 사용한다. 찾는 key를 가지지 않는 map 이 있을 수 있지만 Value를 가지길 원하고 map이 변경되는것을 원치 않을때 사용한다. import java.util.HashMap; import java.util.Map; public class GetOrDefaultEx { public static void main(String[] args) { String[] ex = {"A", "B", "C", "A"}; Map map = new HashMap(); for(String str : ex) ..

    Stack과 Queue

    목차 1) Stack과 Queue의 기본 개념 및 특징 2) Stack과 Queue의 메서드 3) Stack과 Queue의 활용 예시 1) Stack과 Queue의 기본 개념 및 특징 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO (Last In First Out) 구조로 되어있고, 큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO (First In First Out) 구조로 되어있다. 예를 들어 스택에 0, 1, 2 의 순서로 데이터를 넣었다면 꺼낼 때는 2, 1, 0의 순서로 꺼내게 된다. 큐에는 0, 1, 2 순서로 데이터를 넣었다면 0, 1, 2 의 순서로 데이터를 꺼내게 된다. 2) Stack과 Queue의 메서드 3) Stack과 Queue의 활용 예시 import..