Network 인터넷 IP(Internet Protocal) 및 패킷(Packet)

1. 인터넷에서 컴퓨터 둘은 어떻게 통신을 할까요? 단순히 생각해보면 클라이언트에서 메시지를 보내면 서버에서 해당 메시지를 받고 정상적으로 받았다면 응답메시지를 보내주게 됩니다. 2. 인터넷 2.1. 통신을 할때 과연 어디를 통해서 클라이언트와 서버가 통신이 가능해질 수 있었을까요? 바로, 인터넷이라는 개념때문인데 인터넷은 상당히 복잡한 망으로 구성되

백준 Mootube 15591

1. 백준 MOOTUBE 15591 문제 1.1. 문제 농부 존은 남는 시간에 MooTube라 불리는 동영상 공유 서비스를 만들었다. MooTube에서 농부 존의 소들은 재밌는 동영상들을 서로 공유할 수 있다. 소들은 MooTube에 1부터 N까지 번호가 붙여진 N (1 ≤ N ≤ 5,000)개의 동영상을 이미 올려 놓았다. 하지만, 존은 아직 어떻게

릿코드 Valid Parentheses

1. 릿코드 leetcode ValidParentheses 2. 문제 Given a string s containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. 2.1. An input string is valid if: Ope

Effective Java 3/E Item 42 익명클래스 보다는 람다를 사용하라

1. 익명클래스 보다는 람다를 사용하라 자바에서 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스를 사용했습니다. 이러한 인터페이스의 인스턴스를 함수 객체(function object)라고 하여, 특정 함수나 동작을 나타내는 데 썼습니다. 1997년 JDK1.1 이 등장하면서 함수 객체를 만드는 주요 수단은 익명 클래스가 되었습니다. 문자열을

Effective Java 3/E Item 43 람다보다는 메서드 참조를 사용하라

1. 람다보다는 메서드 참조를 사용하라 람다가 익명 클래스보다 나은 점 중에서 가장 큰 특징은 간결함입니다. 그런데 자바에는 함수객체를 심지어 람다보다도 더 간결하게 만드는 방법이 있습니다. 바로 메서드 참조(Method reference)입니다. 다음 코드는 임의의 키와 Integer 값의 매핑을 관리하는 프로그램의 일부입니다. 키의 인스턴스 개수로 해

Spring MVC @ResponseBody의 역할

1. @ResponseBody 스프링환경에서 개발을 진행하다보면 컨트롤러에서 @ResponseBody를 사용하는일이 많습니다. @ResponseBody를 사용하는것과 사용하지 않는것은 어떤차이점이 있을까요? 기본적으로 Spring은 MVC 환경에서 동작을 합니다. 이때 MVC의 동작을 간략하게 말씀드리겠습니다. 만약 사용자가 웹브라우저상에서 서버에게 lo

SpringBoot Gradle 빠르게 설정하기

1. 스프링부트에서 Gradle 빠르게 설정하기 IntellJ 로 프로젝트를 생성하고나면 IntellJ에서 Gradle을 통해서 파일들을 컴파일하는것을 알 수 있습니다. 하지만, 이 방식은 실행속도에 있어서 많은 차이점을 가져다주게 됩니다. 이것을 어떻게 변경할 수 있을까요? Java진영에서 직접 컴파일을 실행시킬 수 있도록 처리해주는 것이 빠른 속도

Springboot 프로젝트 환경설정

1. Springboot 프로젝트 환경설정하기 이번시간부터 스프링부트 프로젝트생성부터 스프링 개념에 대해서 정리를 진행하려고합니다. 프로젝트 생성을 위한 환경은 다음과 같습니다. Intellj IDEA Springboot 2.4.1 버전 Gradle Java 11 스프링 프로젝트를 진행하기 위해서는 https://start.spring.io 에서 생성

IntellJ Error: java: invalid source release: 11

1. 문제 IntellJ에서 JDK 버전이 다른 프로젝트를 진행하는 경우가 생기가 되었습니다. 이때, 현재 사용중인 1.8.0_161 JDK버전과의 충돌이 발생하였습니다. IntellJ Error: java: invalid source release: 11의 에러가 발생하였습니다. 따라서 해당 에러를 해결하기 위해서 처음에 시도한 방식은 다음과 같습니다.