만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/JAVA 20

[Java] Java Servlet Cookie 생성 및 관리

쿠키 쿠키는 작은 데이터 조각입니다. 이 데이터 조각은 클라이언트 - 서버 간 통신에서 클라이언트가 저장하고 있는 데이터로, 서버가 클라이언트의 요청 정보에서 확인할 수 있습니다. 이걸 통해 서버는 클라이언트가 누군지를 확인할 수 있습니다. 또 어떤 servlet 에서 다른 servlet 으로 어떤 데이터를 전달할때도 쓰입니다. 쿠키를 사용할 때 중요한 것은 임시 데이터라는 것입니다. 쿠키는 특정 시간이 지나면 자동으로 만료 되며 사용자가 언제든지 삭제하거나 차단할 수 있습니다. 또한 기본적으로 쿠키는 기본적으로 암호화되지 않고 전송되기 때문에 비밀번호 같은 민감한 데이터는 담아선 안됩니다. 쿠키 생성법 java11, spring-boot-web-starter 에서 진행해보겠습니다. Cookie 클래스는..

[Java] custom Object 리스트를 Map 리스트로 변환하기 (object to map using stream)

목표 객체의 field 와 value 를 꺼내서 Map 객체에 담아 변형하자. key는 필드변수명, value 는 해당 필드 변수의 값이다. 만약 [Person={id:1,name:"choi",height:180},Person={id:1,name:"kim",height:170}] 이라는 배열이 있다면, [{id:1,name:"choi",height:180},{id:1,name:"kim",height:170}] 의 형태로 바꾸고 싶은 것이다. 샘플 클래스 public class streamPractice { public static class Person { private int id; private String name; private int height; private Person(int id, Str..

[Java] Optional 에 대해 알아보자 - 2

2021.03.29 - [프로그래밍/JAVA] - [Java] Optional 에 대해 알아보자 - 1 [Java] Optional 에 대해 알아보자 - 1 Optinal class 는 자바 8에서 도입된 주요 기술 중 하나입니다. 이 클래스의 목적은 null 대신에 optional한 (있거나 없을 수 있는) 값을 표현하기 위한 해결책을 제공하는 것입니다. 기본 Optional 객체 생 choichumji.tistory.com filter() 를 활용한 조건부 리턴 Optional 의 filter 메서드를 활용하면, null check 와 함께 복잡한 조건문을 하나의 라인으로 축약하기 쉽다. 예를 들어, 사람마다 키를 재서 120cm ~ 190cm 인 경우에 롤러코스터를 탈 수 있는지 없는지를 판단하는 ..

[Java] Optional 에 대해 알아보자 - 1

Optinal class 는 자바 8에서 도입된 주요 기술 중 하나입니다. 이 클래스의 목적은 null 대신에 optional한 (있거나 없을 수 있는) 값을 표현하기 위한 해결책을 제공하는 것입니다. 기본 Optional 객체 생성법 // 기본 생성법. 대상이 Null 이 될 수 없을 떄는 @Test public void NonNullWhenCreated() { String fruit = 'apple'; Optional opt = Optional.of(fruit); assertTrue(opt.isPresent()); } 기본적으로 Optinonal.of() 의 파라미터는 null 이 될수 없습니다. 하지만 ofNullable() 은 다릅니다. // 대상이 Null 일 수 있는 경우 @Te..

[Java] 내가 만든 클래스 객체 배열 정렬하기 (comparable, comparator, comparing)

www.baeldung.com/java-sorting Sorting in Java | Baeldung Practical introduction to sorting in Java. www.baeldung.com 내가 직접 추상화해 만든 클래스의 객체들로 이루어진 배열을 정렬하고자 할 때 어떤 방법들이 있을까? 아래와 같은 방법들을 이용해 정렬이 가능하다. 자바에서, 정렬 메소드에 대한 이해 public class Coffee { private String name; private int price; public Coffee(String name, int price) { this.name = name; this.price = price; } public String getName() { return this..

[Java] 단위테스트: System.out.println() 과 Scanner.in 이 들어간 코드를 어떻게 테스트할까?

사용자 입출력 함수로 구성된 함수는 어떻게 테스트 할 수 있을까? 회사 개발자 교육 때 진행하는 페어프로그래밍에서, 최대한 강의를 통해 배운 단위 테스트를 해보려고 했지만 void 형식의 함수의 프린트 결과값을 통해 함수의 테스트결과를 알려고 할 때, 그리고 입력 또한 함수 인자가 아닌 콘솔을 통한 입력을 받는 경우에 어떻게 테스트를 할 수 있을까에 대해 의문이 있었고 스택오버플로우의 힘을 통해 극복했다. 그 내용을 기록하고자 한다. 먼저 내가 테스트하려는 함수가 아래와 같다고 하자. 1. 사용자 입력을 받는다. 계산기 함수이므로 입력의 방식은 " {숫자} {연산자} {숫자} " 이어야만 한다. 2. 만약 위 형식 외에 다른 입력이 주어지는 경우엔 "올바른 계산식을 입력해주세요" 라는 메시지가 콘솔을 통..

[Java] JVM, JRE, JDK 한줄 정리

JVM,JRE,JDK 가 각각 뭔 차이인지? JVM 자바 바이트코드가 컴파일 될 수 있게 하는 자바 런타임 환경을 제공하는 추상화된 머신. (java 클래스를 동작할때 생성되는 런타임 인스턴스다) JRE 이 JVM 의 implemetation 이 JRE. Java Runtime Env. 자바 어플리케이션을 개발하기 위해 활용되는 소프트웨어 도구 집합 및 환경. 라이브러리 + JVM 이 사용하는 파일을 포함 JDK - 자바 어플리케이션 개발을 위한 소프트 웨어 개발 환경이다. JRE + 개발도구를 포함함. JVM < JRE < JDK 의 포함관계