전체 글
[WhiteShip Java LIVE Study] 4주차 : 제어문
목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 선택문 반복문 과제 과제 0. JUnit 5 학습하세요. 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해 질 것. 이미 JUnit 알고 계신분들은 다른 것 아무거나! 더 자바, 테스트 강의도 있으니 참고하세요~ 과제 1. live-study 대시 보드를 만드는 코드를 작성하세요. 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것. 참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것. Github 자바 라이브러리를 사용하면 편리합니다. 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 ..
[WhiteShip Java LIVE Study] 3주차 : 연산자
목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 연산자 연산자는 '연산을 수행하는 기호'를 말한다. 연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야 하는데, 그것을 '피연산자'라고 한다. 연산자(operator) : 연산을 수행하는 기호(+, -, *, / 등) 피연산자(operand) : 연산자의 작업 대상(변수, 상수, 리터럴, 수식 등) 연산자의 종류는 아래와 같다. 종류 연산자 설명 산술 연산자 + - * / % > 사칙 연산과 나머지 연산(%) 관계(비교) 연산..
[WhiteShip Java LIVE Study] 2주차 : 자바 데이터 타입, 변수 그리고 배열
목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다. 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입과 레퍼런스 타입 Java는 정적 타입의 언어로, 모든 변수들은 사용되기 전에 반드시 자료형과 함께 선언해주어야만 합니다. 예를 들어, int 자료형 변수 test는 아래와 같이 선언된 이후에 사용 가능합니다. 1 int test = 123; cs 그리고 변수를 선언할때 사용되는 자료형은 기본형(Primitive type)과 참조형(Reference type) 두 가지로 ..
[WhiteShip Java LIVE Study] 1주차 : JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가
목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가 JVM(Java Vertual Machine)은 운영 체제와 자바 바이트코드(Java Bytecode)의 사이에서 자바 바이트코드를 해석해 모든 운영 체제에서 동일하게 동작하도록 하는 가상 머신이며, OS별로 각각 제공되는 JVM이 자바 바이트코드를 기계어로 해석해 동작하도록 해줍니다. 때문에 우리가 작성하는 자바 프로그램은 OS에 상관없이 JVM만 설치되있다면 동일한 코드로 동일한 동작을 할 수 있는 것입니다. JVM의 구조 Class Loade..
BufferedReader 가 Scanner 보다 빠른 이유
애매하게 시간이 날 때 알고리즘 문제를 푸는 습관을 들여보고있다. 그렇다 또 일을 벌인거다. 입출력 문제부터 풀어보고 있는데, BufferedReader를 사용한 코드가 Scanner를 사용한 코드보다 배로 빠른 것을 보고 포스팅을 하게 되었다. 왜 BufferedReader가 Scanner보다 빠를까? Scanner A simple text scanner which can parse primitive types and strings using regular expressions. A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens ma..
[Swagger] Swagger를 이용해 API 문서를 자동으로 만들어보자
[Swagger] API 명세도구를 사용해보자 왜 쓰게 됬나면... 사이드 프로젝트로 MSA 프로젝트를 하고있는데, API 명세가 확실하게 되어있지 않아 아래의 문제점이 발생했다. 내가 구현한 API가 정말 RESTful 한지 알 수 없었다. 클라이언트 프 logical-code.tistory.com 이전 포스팅에 이어, 이번에는 Swagger를 이용해서 API 문서를 자동으로 만들어보도록 한다. 아래 예제는 현재 진행중인 사이드 프로젝트를 대상으로 적용했다. 의존성 추가 사이드 프로젝트가 Maven 으로 의존성을 관리하고 있으므로, Maven 기준으로 설명합니다. pom.xml에 아래 의존성을 추가합니다. io.springfox springfox-swagger2 2.9.2 io.springfox spr..