240806 내일배움캠프 백엔드 Java 6기 TIL : Scanner 완전이해 & stateless

박대현·2024년 8월 6일
0

1. sc.next() vs sc.nextInt()

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            try {
                System.out.print("첫 번째 정수를 입력하세요: ");
                int x = sc.nextInt();
                break;
            } catch (Exception e) {
                System.out.println("정수만 입력해주세요");
                sc.next();
            }
        }
    }
}

try문에 오류가 나게되면(예를들어 d를 입력), 처음 버퍼에 d\n이 들어오고, nextInt가 d까지 읽으면서 입력포맷오류가 발생해 catch문으로 빠진다. 이때 d\n이 버퍼에 남은상태에서 내려가게되고, next는 \n 전까지 읽기때문에 버퍼에 남은 d를 받음으로써 다시 트라이문으로 돌아가는 것이다.

  • nextLine()은 분리자도 다 읽어올 수 있고, next(), nextInt()는 분리자는 제외하고 읽어온다.

2. 그 밖에

  • JWT에 대해서 설명해 주세요 : 서버 관점에서 보았을떄 stateless입니다.
    • 서버에 세션을 두고 클라이언트가 세션아이디를 가지고 접근하는 방식과 달리, JWT는 보부상처럼 혼자 다가지고있어서 서버에 세션을 두지 않아도 된다. 그러므로 확장성이 좋고 데이터양도 크게 오고갈 수 있다.
    • 서버는 항상 같은 결과를 내기 위해 stateless해야한다.
  • state : 상태(프론트엔드에서는 데이터를 의미)

0개의 댓글