728x90

백엔드 개발자 공부/Java 10

[Java] JSON

JSON(JavaScript Object Notation) - 다른 프로그램과의 데이터 교환을 위해 만들어진 객체 형태의 포맷 - 데이터를 전송하기 위해선 수신자와 발신자가 같은 프로그램을 사용하거나, 문자열처럼 범용적으로 읽을 수 있어야 함 직렬화와 역직렬화 - 직렬화(serialize) : 객체를 JSON 형태로 변환 (e.g. ObjectMapper.writeValueAsString() 메서드) - 역직렬화(deserialize) : JSON을 객체 형태로 변환 (e.g. ObjectMapper.readValue() 메서드) cf. Jackson 라이브러리를 이용하여 Object를 JSON으로 변환하기 JSON과 자바스크립트 객체의 기본 규칙 - JSON : 모든 키와 문자열 값은 반드시 쌍따옴표(..

[Java] 재귀 함수

재귀(Recursion) - 원래의 자리로 되돌아가거나 되돌아옴 - 문제를 동일한 구조의 더 작은 문제로 나누고, 작은 문제를 해결함으로써 전체 문제를 해결하는 방법 - 알고리즘 문제의 많은 부분을 차지하며, 재귀를 사용하면 코드가 간결하고 이해하기 쉬워짐 재귀 함수 - 자기 자신을 호출하는 함수 - 문제를 점점 작은 단위로 쪼갤 수 있어야 하고, 재귀 호출이 종료되는 시점이 존재해야 사용 가능 재귀 함수를 사용하기 적합할 때 - 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우 - 변수 사용을 줄여 프로그램 오류가 발생할 수 있는 가능성을 줄이는 경우 재귀함수의 장점 - 불필요한 반복문을 사용하지 않아 코드가 간결해지고 수정이 쉬워짐 - 반복문에 비해 많은 수의 변수를 사용할 필요 없음..

[Java] 배열

배열 - 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조 - 요소(element) : 배열이 가진 각 값들 - 인덱스(index) : 배열의 각 요소가 부여받는 순번(0부터 시작) 배열의 차원 - 배열의 요소가 또 다른 배열인 경우 배열이 중첩된 정도 - 1차원 배열 : 배열의 중첩이 없는 경우 e.g. { 1, 2, 3, 4 } - 다차원 배열(2차원 배열, 3차원 배열, ...) : 배열이 중첩된 경우 e.g. { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } } 1차원 배열 - 배열 선언 // 배열을 가리킬 참조 변수 temperatureOfJuly 선언 double[] temperatureOfJuly; // 31개의 double형을 저장할 수 있는 배열을 생성하고, 배열 첫 번째 요..

[Java] 제어문 (2) - 반복문

for문 - 조건식이 참인 동안 실행문을 반복적으로 수행 - while문과 서로 변환이 가능하지만, 주로 반복 횟수를 알고 있을 때 사용 for (초기화; 조건식; 증감식) { 실행문; } 초기화 : 사용할 변수의 초기값. for문이 시작할 때 최초 한 번만 수행 조건식 : 조건식이 true라면 실행문을 실행시키고, false라면 실행시키지 않고 반복문을 끝냄 증감식 : 반복 횟수를 결정하는 규칙 cf. 향상된 for문 : 변수, 증감식 없이 배열 및 컬렉션 항목의 개수만큼 반복 while문 - 조건식이 참일 경우 계속 반복 - for문과 서로 변환이 가능하지만, 주로 조건에 따라 반복할 때 사용 (초기화); while (조건식) { 실행문; 증감식; } 초기화와 증감식은 생략 가능하지만, 실수 시 무한..

[Java] 제어문 (1) - 조건문

if문 - boolean 타입으로 평가될 수 있는 조건식이 참일 때 실행문 실행 - 중괄호{}를 이용해 '블록(block)'을 만들어 여러 문장을 하나의 단위로 묶음 if (조건식) { 실행문 - 조건식이 참일 때 실행될 블록 } if...else문 - 조건식의 결과에 따라 실행 블록 선택 - else문은 생략 가능 if (조건식1) { 조건식1이 참일 때 실행될 블록 } else if (조건식2) { 조건식1이 거짓이고, 조건식2가 참일때 실행될 블록 else { 조건식1, 2가 모두 거짓일 때 실행될 블록 } switch문 - 변수가 어떤 값을 갖느냐에 따라 실행문이 선택됨 - if...else를 반복적으로 추가하는 것보다 코드가 간결할 수 있음 switch (변수) { case "값1": 변수값1일..

728x90