전체 글
-
[Java] 자바 Enum이란?Java 2022. 1. 1. 12:11
Enum이란? Enumeration의 앞의 4글자를 따서 Enum이라고 부르며 열거라는 의미를 가집니다. JEK 1.5부터 관련이 있는 상수들의 집합을 사용할 때 사용합니다. 상수의 값 뿐만아니라 타입도 관리하기 때문에 논리적인 오류를 줄일 수 있습니다. 기존에 상수를 정의하는 방법은 아래와 같았습니다. public static final string MALE = "MALE"; public static final string FEMALE = "FEMALE"; 그러면 왜 Enum이란게 생겨나게 되었고 사용할까요? 런타임에서 발생할 수 있는 에러를 컴파일 단계에서 차단할 수 있음.(typesafe enum) String gender; gender = MALE; gender = "strangeValue" 우리..
-
스프링부트 Welcome Page 만들기(스프링부트 hello 출력하는 페이지 만들기)Spring Framework 2021. 12. 31. 18:01
이전시간에 스프링부트 스타터를 통하여 프로젝트를 만들고 이를 실행하여 localhost:8080에 접속하였을 때 Whitelabel error page 에러 메시지가 출력되었습니다. 오늘은 에러 메시지 대신에 hello가 출력되도록 만들어 보겠습니다. 또한 thymeleaf 템플릿 엔진을 사용하여 동적인 페이지를 만들어 보겠습니다. Welcome Page란? 도메인만 누르고 들어왔을 때 첫 화면을 의미합니다. 예를 들면 네이버나 구글에 접속하였을 때 첫 화면을 의미합니다. 여기서는 localhost:8080으로 접속하였을 때 첫 화면을 의미합니다. 즉, 스프링부트를 통해 hello가 출력되는 페이지를 만들어보겠습니다. src/main/recources/static 폴더에 index.html 파일 만들고 ..
-
[Java] 제네릭/지네릭스(Generics)란?Java 2021. 12. 30. 16:39
제네릭(Generics)란? 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능입니다. 객체의 타입을 컴파일 시에 체크하기 때문에 의도하지 않은 타입의 객체가 저장되는 것을 막고 다른 타입으로 잘못 형변환 되어 발생할 수 있는 오류를 줄여줍니다. 제네릭을 사용하는 이유? (등장배경) ArrayList와 같은 컬랙션 클래스에는 다양한 종류의 객체를 담을 수 있지만 보통 한 종류의 객체를 담는 경우가 많습니다. 객체들을 꺼낼 때 마다 타입체크를 하고 형변환을 하는 것을 불편하고, 원하지 않는 종류의 객체가 포함되는 것을 막을 수 없었습니다. 이러한 문제들을 해결하기 위해 제너릭스가 등장하게 되었습니다. 사용예시 ArrayList aList = new ArrayList(..
-
build.gradle 파일 분석Spring Framework 2021. 12. 29. 23:36
이전 시간에는 스프링부트 스타터로 스프링부트 프로젝트를 실행해보았습니다. https://junuuu.tistory.com/40?category=968779 이클립스로 스프링부트 프로젝트 시작하는 법(Spring Initializr) - Gradle 에러 디버깅 이전 시간에는 스프링 프레임워크에 대해 알아보았고 이제 실제로 스프링 부트 프로젝트를 시작해 보겠습니다. 시작 환경 Java16 버전과 Eclipse가 설치되어 있는 환경에서 시작하겠습니다. 스프링 junuuu.tistory.com 프로젝트에 다양한 파일들이 존재하는데 이중에 build.gradle 파일에 대해 알아보겠습니다. Gradle에는 build.gradle라는 파일에 빌드에 대한 처리를 작성하고, 이 빌드 파일의 기본에 대해 설명합니다. ..
-
HTTP 응답 메시지 - 상태 코드(State Code)CS/네트워크 2021. 12. 28. 23:03
상태 코드(State Code)란? HTTP 응답 메시지가 클라이언트가 보낸 요청의 처리 상태를 알려주는 코드입니다. 이 코드를 통해서 클라이언트는 요청이 성공했는지 실패했는지 확인할 수 있습니다. 만약 이런 상태 코드가 없다면 에러를 감지하기 위해서 해석하는 과정이 필요할 것입니다. 상태 코드의 구조 상태 코드는 3자리 숫자로 만들어져 있으면 첫째 자리는 1~5로 구성됩니다. 숫자 뒤에는 사람이 이해할 수 있는 간단한 문구가 들어갑니다. 다음은 첫번째 자리별 의미입니다. (xx는 임의의 숫자가 올 수 있음을 의미합니다.) 1xx(Informational) : 요청이 수신되어 처리 중 2xx(Successful) : 요청 정상 처리 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요 4..
-
REST API란? RESTful API란?CS/네트워크 2021. 12. 27. 16:17
HTTP API에 대해서 모르신다면 이 글을 보기 전에 아래의 글을 보고 오시면 좋을 것 같습니다. https://junuuu.tistory.com/38 HTTP API란? HTTP란? https://junuuu.tistory.com/36 HTTP 기본 HTTP란? HyperText Transfer Protocol의 약자로 HTML을 전송하는 프로토콜로 시작되었으나 현재는 모든 것을 HTTP 메시지를 통해 전송합니다. HTML, TEXT, IMAGE.. junuuu.tistory.com REST란? REpresntational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. 웹의 장점과 HTTP의 우수성을 제대로 활용 할 수 있는 아키텍처입..
-
이클립스로 스프링부트 프로젝트 시작하는 법(Spring Initializr) - Gradle 에러 디버깅Spring Framework 2021. 12. 26. 20:26
이전 시간에는 스프링 프레임워크에 대해 알아보았고 이제 실제로 스프링 부트 프로젝트를 시작해 보겠습니다. 시작 환경 Java16 버전과 Eclipse가 설치되어 있는 환경에서 시작하겠습니다. 스프링 프로젝트를 하기 위해서 많은 설정이 필요하지만 스프링 부트를 사용한다면 편리하게 할 수 있습니다. 스프링 부트 스타터 사이트를 통해 스프링 프로젝트 생성 아래의 링크를 클릭하여 사이트로 이동하시면 됩니다 https://start.spring.io/ 아래의 UI는 시간에 따라 변화할 수도 있습니다. 1. Project를 선택합니다. Maven Project와 Gradle Project가 있습니다. (Gradle로 선택하겠습니다.) 이 둘은 빌드 도구로 프로젝트에 필요한 의존성을 관리하고 빌드 라이프사이클을 관리..
-
[백준]5014번 : 스타트링크 - 자바(JAVA)알고리즘/백준 2021. 12. 25. 23:24
https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 문제 해석 건물은 총 F층으로 이루어져 있으며, 목적지의 위치는 G층이다. 현재 위치는 S층이고 엘리베이터를 타고 이동하려고 한다. 엘리베이터의 버튼은 2가지 위로가는 U버튼과 밑으로가는 D버튼이 있다. U버튼과 D버튼은 각각 정해진 층수만큼 위 또는 아래로 이동한다. 만약 U버튼이 2이고 D버튼이 1이라면 U버튼을 한번 누를 때마다 위로 2층 D버튼을 한번 누를 때마다 아래로 1층 이동하게 된다. 만약 엘리..