| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 탐욕 알고리즘
- REST HTTP API
- O(log n)
- http 응답코드
- AOP
- Spring 예외처리
- custom exception
- git 설정
- JAVA 재귀함수
- 스키마 디자인
- file i/o
- RestControllerAdvice
- Spring
- ubuntu
- mapstruct
- Spring MVC
- set-version
- ubuntu passwd
- git workflow
- 자료구조
- root passwd
- Java
- 함수형 인터페이스
- 스키마 설계
- N:N
- 리눅스 사용권한
- 코드스테이츠
- ubuntu 패스워드
- 배열 탐색
- char to int
- Today
- Total
목록전체 글 (68)
개발소설
JSON (JavaScript Object Notation) 데이터 교환을 위해 만들어진 객체 형태의 포맷 서버와 클라이언트, 서로 다른 언어, 서로 다른 플랫폼등에서 통일된 데이터를 교환하기 위해 사용 데이터를 보내는곳에서 JSON형식으로 만들어 보내고 데이터를 받는곳에서 JSON형식을 자신의 플랫폼에 맞게 해석하여 사용 한다. JavaScript 객체 표기법의 부분집합이기 때문에 웹브라우저 레벨에서 쉽게 해석할 수 있으며, 모양과 규칙 자체가 단순한 관계로 다른 언어에서 구현하기도 쉽다. 그래서 오늘날 사용되는 거의 모든 프로그래밍 언어에서 사용가능하다. key : value 형식으로 되어있다. JSON의 기본 규칙 자바스크립트의 객체와 미묘하게 다른 규칙이 있다. JSON JavaScript 객체 ..
재귀함수 (Recursion) 재귀의 사전적 의미 : 원래의 자리로 되돌아가거나 되돌아옴 자기 자신을 호출하는 함수 반복적인 작업을 간결하게 해결 할 수 있다. // 재귀함수 예제 class Recursion{ void recursion(){ System.out.println("제발 그만해.."); recursion(); } } // recursion() 호출시 /* 제발 그만해.. 제발 그만해.. 제발 그만해.. 제발 그만해.. 제발 그만해.. 제발 그만해.. 제발 그만해.. 제발 그만해.. .. */ 재귀 함수의 장점 여러개의 반복문을 사용하지 않아, 코드가 간결, 수정이 용이해진다. 변수를 여러개 사용 할 필요가 없다. 재귀 함수의 단점 반복문과 달리, 코드의 흐름 직관적 파악이 안된다. (선언형 ..
회고에 앞서 3주차 회고를 적지 못하였다... 그때 당시 객체지향프로그래밍 심화과정 (상속, 캡슐화, 다형성, 추상화) 진행을 하였는데 내용이 이해가 잘 안가는게 많아서 멘탈이 좀 흔들렸었다... 3주만에 흔들리다니.. 그렇다고 주말에 아무것도 안한것은 아닌데.. 저걸 다시보고 이해하느라 회고를 쓸 생각도 못하고 있었다. 문제는 지금도 완벽히 이해는 못한것 같다... 계속해봐야지 어쩔수 있나.. 여기 까지 핑계였다.. 기분이 어떠한가? 진짜 눈깜짝 할 새에 한달이 지나갔다. 진도가 진짜 빠른편이라 완벽히 이해하지 못한 상황이 불안하다. 중간에 집중 못한적도 꽤 있어서 자괴감도 든다. 블로그에 TIL하는게 진짜로 빡세다.. 잘한점 (keep) TIL을 지키려고 진짜 노력을 많이 했다. 진짜 시간이 부족하여..
JVM (Java Virtual Machine) 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램 JVM이 자바 프로그램과 운영체제 사이에서 통역가 역할을 해준다. 프로그램이 운영체제에게 자원을 직접 요청하지 않고 JVM을 통해서 요청하기 때문에 운영체제로 부터 독립적이다. 각 OS별로 JVM이 존재하여 동일한 자바 소스 코드를 OS에 맞게 변환해 실행해 준다. JVM 구조 흐름도 자바 컴파일러(javac)가 실행되면서 컴파일 진행, 자바 소스 코드(.java) -> 바이트 코드(.class)로 변경 운영체제로부터 소스코드 실행에 필요한 메모리를 할당 받음 (Runtime Data Area) 클래스 로더(Class Loder)가 바이트 코드 파일(.class)을 JVM 내부로 불러들여 Runti..
스레드(Thread) 실행중인 애플리케이션을 프로세스(Process) 프로세스는 데이터, 컴퓨터 자원, 스레드로 구성 프로세스 내에서 실행되는 소스 코드의 실행 흐름을 스레드(Thread) 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행 단 하나의 스레드를 가지는 프로세스를 싱글 스레드 프로세스 여러 개의 스레드를 가지는 프로세스를 멀티 스레드 프로세스 메인 스레드(Main Thread) 자바 프로그램 실행시 메인이 되는 스레드 메인 메서드는 제일 처음 main 메서드를 실행시킨다. main 메서드의 코드 처음부터 끝까지 순차적으로 실행하여, main 메서드의 코드의 끝을 만나면 스레드가 종료된다. 중간에 다른 스레드를 생성하지 않고 메인 스레드로만 프로세스를 실행하는 경우 싱글..
스트림(Stream) 배열, 컬렉션의 요소를 하나씩 참조하여 람다식으로 처리 할 수 있도록 해주는 반복자 컬렉션, 배열등 다양한 데이터 소스들을 스트림으로 만들어 표준화된 방법으로 다룰수 있다. 이러한 데이터 소스를 다루기위한 풍부한 메서드들을 제공한다. 스트림의 도입 배경 자바 배열과 컬렉션등의 자료구조를 통해 데이터를 효과적으로 다루기 위하여 for문과 Iterator를 활용했었다. 이러한 기존 방식의 문제점이 있다. 코드가 길고 복잡해 질수 있다. 데이터 소스를 각기 다른 방식으로 다뤄야 했다. 이러한 문제점을 해결하기 위해 스트림은 이런 방식으로 다뤄진다. 선언형 프로그래밍 방식으로 데이터를 처리를 보다 인긴친화적이고 직관적인 코드 작성 가능 데이터 소스가 무엇이냐에 관계없이 같은 방식으로 데이터..
InputStream, OutputStream 자바에서는 입출력을 다루기 위한 InputStream, OutputStream을 제공한다. 스트림은 단방향으로만 데이터를 전송할 수 있기에, 입력과 출력을 동시에 처리하기 위해서는 각각의 스트림이 필요합니다. FileInputStream 파일을 바이트 스트림으로 읽는다. // test.txt -> hi my name is ChaeHing import java.io.FileInputStream; public class FileIo { public static void main(String[] args) { try{ //FileInputStream fileInput = new FileInputStream("test.txt"); // 파일스트림 생성, 상대경로....
람다 (Lambda) 함수형 프로그램 기법을 지원하는 자바의 문법 요소 매서드를 하나의 식으로 표현한 것 코드를 매우 간결하고 명확하게 표현가능한 장점이 있다. 람다식의 기본 문법 기본적으로 반환타입, 이름을 생략 -> 익명 함수(anonymous function) // 기존 메서드 int sum(int num1, int num2){ return num1+num2; } // 기본 람다식, 반환타입 메서드 이름 생략, (화살표) -> 추가 (int num1, int num2) -> { return num1+num2 }; // 기존 void print(){ System.out.println("Hello"); } // 람다식 () -> System.out.println("Hello"); 특정 조건 충족시 람다..