본문 바로가기

Java44

[Live-Study] 연산자 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 2주차까지 하며, 그동안 대충 알고있던 개념들을 확실히 잡을 수 있었습니다. 3주차도 부족하지 않은 정리를 해볼까합니다. 연산자(Operator)? 여러종류의 연산자 를 살펴보기 전, 연산자란 무엇인가에 대해 살펴볼 필요가 있습니다. 연산자는 변수와 값에 대한 작업을 수행하는데 쓰이는데 사용됩니다. 아래의 예제에선 + 연산자를 사용하여 두개의 값을 더하는 것을 볼 수 있습니다. int x = 100 + 50; + 연산자는 위의 예.. 2021. 1. 27.
[Live-Study] 자바 데이터 타입, 변수 그리고 배열 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 2주차가 시작되었습니다. 정리도 우선이지만 쉽게 이해할 수 있게 정리해보는 것을 목표로 했습니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 타입(Data type)이란 해당 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 것입니다. 자바에서 타입은 크게 기본형(프리미티브) 타입과 참조형(래퍼런스) 타입이 있습니다. 프리미티브 타입은.. 2021. 1. 27.
[Live-Study] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 Overview JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 기선님이 주최하신 live-study 1주차입니다. 자바 개발자라고 떳떳히 말할 수 있을 기본기를 쌓아가는 과정입니다. JVM이란 무엇인가 이부분은 이전에 정리한 포스트로 대체하겠습니다. [Java] JVM이란? 컴파일 하는 방법 windows 기준으로 컴파일 하는 방법을 정리하겠습니다. 컴파일을 한다는 것은 .java파일을 .class 파일(바이트 코드)로 만드는 것을 의미합니다. JDK(Java Developer Kit) 자바 개발 도구를 설치하면 bin디렉토.. 2021. 1. 27.
[Java] VO(Value Object)란? 개발을 하다 자주 VO라는 개념을 들은적이 있습니다. 대략적으로 값 객체 패턴(Value object pattern) 즉, 객체를 값처럼 쓸 수 있고, 제약사항 중 하나는 객체의 인스턴스 변수가 생성자를 통해서 일단 설정된 후에는 결코 변하지 않음을 보장한다는 것입니다. 저도 위와 같이 얕게만 알고있었는데, 이번 기회를 통해 제대로 알아보려 합니다. 제가 봤던 재미난 글을 통해 포스팅을 작성하려합니다. VO(Value Object)? 만약 아래와 같은 질문을 받았다고 생각해봅시다. 사람의 나이를 나타내기 위해 어떠한 변수 타입을 사용해야 할까요? [] Integer [] Boolean [] String 어떠한 결정을 내릴건가요? "Boolean은 true, false니까.. 일단 아니고,, Integer.. 2021. 1. 26.
[Java] Code Convention 개발자라면 협업 시, 사용하는 언어의 코드 컨벤션을 지켜야 합니다. 이전까지는 느낌상 이렇게 하면 되겠다는 생각으로 개발을 했었는데, 굉장히 위험한 생각인 것 같아 정리하게 되었습니다. 이 포스트는 Google Java Style Guide 의 내용을 토대로 썼습니다. 1. 소개 Java 소스 파일은 아래의 규칙을 준수하는 경우에만 Google 스타일로 설명이 됩니다. Google에서는 어떤 코딩 스타일을 따르고 있는지 알아봅니다. 1.1 용어 참고 달리 명시되지 않는 한, 클래스라는 용어는 "일반"클래스, 열거 형 클래스, 인터페이스 또는 주석 유형(@interface)을 의미하기 위해 포괄적으로 사용됩니다. 클래스의 멤버라는 용어는 중첩 된 클래스, 필드, 메서드 또는 생성자를 의미하기 위해 포괄적으.. 2021. 1. 26.
[Java] JVM 이란? 자바 바이트코드(.class 파일)는 JRE(Java Runtime Enviromnment) 위에서 동작합니다. 이 JRE에서 가장 중요한 요소는 자바 바이트코드를 해석하고 실행하는 JVM(Java Virtual Machine)입니다. JRE는 자바 API와 JVM으로 구성되며, JVM의 역할은 자바 애플리케이션을 클래스 로더(Class Loader)를 통해 읽어 들여서 자바 API와 함께 실행하는 것입니다. 개발 관련 도구는 JDK에서 제공합니다. JVM에 들어가기 앞서 먼저 Java의 특징을 얘기하겠습니다. Java의 큰 특징은 아무 하드웨어(CPU)던, 아무 운영체제(OS)던 상관없이 컴파일 된 코드(바이트코드)가 플랫폼 독립적이라는 점입니다. 이러한 특징을 구현하기 위해 JVM이 필요합니다. 단순.. 2021. 1. 26.
[SpringBoot] Swagger를 통한 REST 요청에 전역 jwt 인증하기 안녕하세요, 이 포스트는 Jwt 설정, Swagger설정이 이미 완료된 서비스에서 활용할 수 있는 방법을 소개합니다. 문제점 그림과 같이 Swagger를 사용하면서 각 API마다 @ApiImplicitParam 을 통해 JWT를 받아왔었는데요, 서비스가 확대되고, jwt 토큰 인증이 필요한 API가 많아 질 수록 코드의 양과 가독성이 나빠 졌습니다. 또한 스웨거를 통한 테스트 진행시 각 API마다 jwt를 입력해야 한다는 번거로움 또한 있었습니다. 그림과 같이 Authentication을 받는 모든 곳에 jwt를 입력해야 했음. 해결 Swagger version 2.9.2부터 이렇게 번거로운 일을 쉽게 바뀔 수 있는 기술이 들어갔다고 합니다. 소개에 앞서 결과부터 확인 해보겠습니다. 원래는 없었던 Aut.. 2021. 1. 25.
[Swagger] Multi @ApiResponse에 동일 코드 사용시 나타나는 에러 안녕하세요. Swagger를 통해 Api문서를 정리하다 신기한 점을 발견하고, 이를 해결했던 방법에 대해 설명하려 합니다. 초기 코드 @ApiOperation(value = "게시글 저장") @ApiResponses(value = { @ApiResponse(code = 201, message = "저장 성공", response = PostSaveResponseDto.class), @ApiResponse(code = 400, message = "등록되지 않은 개인 미션", response = ErrorResponse.class), @ApiResponse(code = 400, message = "등록되지 않은 유저", response = ErrorResponse.class), @ApiResponse(code.. 2021. 1. 22.