본문 바로가기
728x90

분류 전체보기143

[Java] 시간 정보 다루기 Date JDK 1.0부터 지원하는 java.util 패키지의 Date 클래스는 날짜와 시간을 구하는 목적으로 사용할 수 있다. 하지만, 최초로 만들어진 클래스이니 만큼 지역화에 대한 부분이 고려되지 않고 만들어진 클래스이다. 지역에 따라 시간, 통화(원, 달러, 엔, 유로, 파운드 등..), 언어등에 대하여 고려하는 프로그래밍을 지역화에 맞춘 프로그래밍이라고 한다 이런 Date class의 단점을 보완하기 위해서 Calendar 클래스(JDK 1.1부터)가 만들어졌다고 한다. 스펙을 찾아봐도 대부분의 Date 생성자가 deprecated로 표기되어 있으니 웬만하면, Calendar를 사용하는 것이 좋을 것 같다. 위와 같은 예제처럼 사용할 수 있으며, SimpleDateFormat을 활용해서 원하는 양.. 2023. 2. 3.
Synchronous vs Asynchronous와 Blocking vs Non-Blocking 이 개념을 정리하는 이유 😀 Spring 공부 중 WebClient를 사용하기 위해 공부하다가 Non-Blocking 방식으로 WebClient가 동작한다라고 하는 부분이 이해가 잘 되지 않아서 이 개념들을 정리해 봅니다. 이해 해보자 Blocking: 자신의 작업을 수행하다 다른 주체의 작업이 시작되는 경우 제어권을 뺏기는 경우 Non-blocking: 자신의 작업을 수행하다 다른 주체의 작업이 시작되어도 제어권을 뺏기지 않는 경우 Synchronous: 작업을 동시에 시작하거나 동시에 끝이나는 상황, 혹은 끝나는 동시에 시작함을 의미 (결과에 관심이 있는 상태) Asynchronous: 작업의 시작 종료가 일치하지 않으며, 끝나는 동시에 시작하지 않음을 의미 (결과에 관심이 없는 상태) 위와 같이 정.. 2023. 2. 2.
BOJ - 2638번 치즈, BFS를 이용한 풀이 정리 이번 문제는 BFS 혹은 DFS와 같은 그래프 탐색 알고리즘을 이용하여, 이후 상황에 대한 시뮬레이션 과정을 구현하는 문제였습니다. 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 위와 같이 주어진 모눈종이에서 외부 공기와 2개의 면 이상이 닿아있는 치즈는 녹는 상황에서 치즈가 모두 녹는데 걸리는 시간을 구하는 문제입니다. 간단한 그래프 탐색 문제처럼 단순하게 순회를 해서 해결되는 문제가 아니었고, 시간의 흐름을 측정할 수 있어야 했습니다. 그 이유는 그 시간대에서 녹을 위치에 있는 치즈가 모두 .. 2023. 2. 1.
[JAVA] java.util 패키지 정리 이름과 걸맞게 여러 가지 편의 기능을 제공해주는 패키지이다. ArrayList, HashMap, Calendar, Random 등 다양한 패키지를 포함하고 있다. 컬랙션 프레임워크 (Collection Framework) 자료구조 클래스들을 컬랙션 프레임워크라고 부른다. 다수의 객체를 다루기 위한 표준화된 프로그래밍 방식을 의미한다. 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 인터페이스와 클래스를 제공 java.util 패키지에 포함되어 있으며, JDK1.2부터 제공됨 가장 상위에 Collection interface가 있고, 다음과 같이 상속관계를 표현할 수 있다고 한다. 컬렉션(Collection): 여러 객체(데이터)를 담을 수 있는 자료구조, 다수의 데이터 그룹 프레임워크(Framework): .. 2023. 2. 1.
[JPA] 다양한 연관관계 매핑 연관관계 매핑시 고려사항 3가지 다중성 (연관관계 차수) 단방향 or 양방향 연관관계 주인 설정 다중성 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany 다중성과 관련되어 헷갈리는 경우 반대 엔티티에서의 연관관계 차수를 생각해보자! (다중성은 대칭성을 띄기 때문이다.) 참고: 다대다 관계는 실무에서 사용하면 안 된다. 왜 그런지에 대해서는 뒤에서 공부하자. 단방향과 양방향 테이블 외래 키 하나로 양쪽 조인이 모두 가능 사실상 방향이라는 개념이 없다. 객체 참조용 필드가 있는 쪽으로만 참조가 가능하다. 한쪽만 참조하면 단방향 양쪽에 필드를 만들어 서로 참조해야 양방향 사실 양방향이란 개념은 없다. (참조의 입장에서 사실은 두 개의 단방향이다).. 2023. 2. 1.
[Java] java.lang 패키지 정리 자바에서 기본적으로 다양한 패키지를 지원하는데, 그 중에서도 가장 중요한 패키지는 java.lang 패키지이다. java.lang 패키지의 특징 정리 import 하지 않아도 사용할 수 있다. java.lang 패키지에는 기본형 타입을 객체로 변환할 때 사용하는 Wrapper class가 있다. Boolean, Byte, Short, Integer, Long, Float, Double 클래스 모든 클래스의 최상위 클래스인 Object 문자열 관련된 String, StringBuffer, StringBuilder 화면에 값을 출력할 때 사용한 System 클래스 수학과 관련된 Math 클래스 Thread와 관련된 중요 클래스들 위의 클래스들을 포함한 다양한 클래스 및 인터페이스가 java.lang 패키지에.. 2023. 1. 31.
728x90