이 영역을 누르면 첫 페이지로 이동
Arc 블로그의 첫 페이지로 이동

Arc

페이지 맨 위로 올라가기

Arc

분류 전체보기

  • Arc
[OS] 컴퓨터는 현재시간을 어떻게 알까?

[OS] 컴퓨터는 현재시간을 어떻게 알까?

2024.07.31
컴퓨터의 시계를 보면 꽤 정확하게 시간을 측정하는 시계를 볼 수 있다.그런데 컴퓨터는 이 시간을 어떻게 매번 정확하게 측정할 수 있는걸까? 이를 알기 전에 고등학교 물리 시간으로 돌아가 시간 측정 방법에 대해서 먼저 알아보자.  협정 시계시(UTC)협정 시계시는 국제적인 표준 시간의 기준으로 쓰이는 시각으로, 원자시계와 윤초 보정을 기반으로 표준화 한 시각이다.이 시각은 학교에서 배웠듯이 영국 그리니치 천문대가 기준(UTC+0)이다. 대한민국의 시간은 UTC+9로, 영국이 12시라면 한국은 21시가 된다. 원자시계협정 시계시는 위에서 말했듯, 원자시계를 통해 측정한다.원자시계는 세슘 원자를 이용해 정의하며, 세슘 원자가 절대영도 조건에서 방출하는 특정한 파장의 빛이 9,192,631,770번 진동하는 시..
[Docker] docker의 용량을 차지하는 overlay2는 무엇일까?

[Docker] docker의 용량을 차지하는 overlay2는 무엇일까?

2024.07.28
이전에 overlay2에 용량이 가득 차 배포를 실패하는 상황이 발생하여 해결한 적이 있었다. 그런데 이 overlay2라는게 과연 무엇일까?  OverlayFS먼저 overlay2를 알기 위해선 OverlayFS를 알 필요가 있다.OverlayFS는 유니온 마운트 파일 시스템으로, 이를 통해 사용자는 한 파일 시스템을 다른 파일 시스템 위에 오버레이(overlay)할 수 있다. (이외에도 AUFS, Devicemapper가 있다)OverlayFS는 overlay 또는 overlay2 중 하나를 사용한다. overlay는 커널 3.18 버전부터 기본적으로 내장되어 있으며, overlay2는 4.0부터 지원된다.Docker를 설치하면 자동으로 사용되도록 설정되며 최신 버전의 Docker는 기본적으로 Ove..
[Docker] 디스크 용량으로 인한 배포 실패 상황

[Docker] 디스크 용량으로 인한 배포 실패 상황

2024.07.27
CodeDeploy를 통해 개발 서버에 배포 하던 중 배포가 실패된 상황이 발생했다. No space left on device맞다. 서버에 남은 공간이 없다는 말이다.비용적인 문제로 인해 개발서버를 t2.micro에 띄워 배포하고 있었는데, 프리티어의 경우 storage volumn이 최대 30GB까지만 허용되기 때문에 30GB를 다 사용했다는 말이었다. 그런데, 여태 코드 몇 줄 추가 했다고 30GB가 전부 채워질리는 없었다. 그럼 먼저 용량을 한번 확인해보자.$ sudo df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 4.0M 0 4.0M 0% /devtmpfs 475M 0 475M ..
[Java] System.out.println의 사용을 지양하자

[Java] System.out.println의 사용을 지양하자

2024.06.21
개발자는 프로젝트를 진행하면서 요청을 기록 및 관찰하기 위해 logging을 한다. 아마 초반에 토이 프로젝트를 하다보면 요청이 잘 갔는지 확인해보기 위해 System.out.println을 사용하는 경우가 많을 것이다. 이번에 말할 주제는 제목과 같이 System.out.println의 사용을 지양해야 한다는 것이다. 왜 그래야하는지 한 번 살펴보자.  logging framework만약 자바/스프링부트 기반의 프로젝트를 진행해봤다면, 스프링부트 프로젝트 생성 시 로깅 프레임워크들(log4j2, logback 등)이 추가되는 것을 볼 수 있다. 이 로깅 프레임워크들을 이용해서 다음과 같이 logging을 할 수 있다.class App { public static void main(String[] ..
[Java] 위도/경도 값에 BigDecimal or double?

[Java] 위도/경도 값에 BigDecimal or double?

2024.04.30
위/경도 값을 저장할 때 BigDecimal을 사용하는 것을 본 적이 있다.하지만 BigDecimal을 사용하는 것이 좋은걸까? double을 사용하는 건 좋지 않은 걸까?BigDecimal과 double에 어떤 특징이 있는지, 위경도에 어느 자료형이 적합할지 한 번 살펴보자.  double의 부동소수점 문제오늘날 컴퓨터는 대부분 IEEE 754 부동 소수점 방식을 사용하기 때문에 Java에서 double을 사용해 소수를 표현한다면 소수점 약 15자리부터 오차가 발생할 수 있다.  오차를 해결하려면?Java에는 BigDecimal이라는 자료형으로 부동소수점 방식으로 인해 생기는 오차를 막을 수 있다. https://docs.oracle.com/javase/8/docs/api/java/math/BigDec..
[Java] utility class는 무엇으로 구현하는 것이 좋을까?

[Java] utility class는 무엇으로 구현하는 것이 좋을까?

2024.04.15
Utility class? utility class(유틸리티 클래스)는 애플리케이션 전체에서 활용할 수 있는 클래스로 정적 메소드(static method)를 통해 구현한다. Interface의 static method 사용? Java 8 이후로, interface에 static method를 사용할 수 있게 되었다. 만약 static method를 사용하여 유틸리티 클래스를 구현한다면 다음과 같이 작성할 수 있다. public interface CalculatorUtils { static int getSumResult(int a, int b) { return a + b; } } 인터페이스로 구현하니 간결하고 실용적이게 보인다. 하지만 인터페이스로 유틸리티 클래스를 구현하는 데에는 몇 가지 단점이 있다...
[Java] 제네릭(Generic)

[Java] 제네릭(Generic)

2024.03.12
제네릭(Generic)? 제네릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객채 타입을 컴파일 타임에 체크하기 때문에 잘못된 형변환으로 인해 오류가 발생하는 상황을 막아주고, 형변환의 번거로움이 줄어들 수 있다. 제네릭 클래스 제네릭은 클래스와 메서드에 사용할 수 있는데, 먼저 제네릭 클래스는 클래스 명옆에 와 같이 타입 변수를 붙여 사용한다. class Box { private T item; public void setItem(T item) { this.item = item; } public T getItem() { return this.item; } } 여기서 T는 임의로 지정한 변수명으로 T가 아닌 다른 명칭으로 지정할 수 있다. 위 코드를 ..
[Java] Mockito

[Java] Mockito

2023.07.31
Mockito? Mockito는 실제 객체를 모방한 Mock 객체를 쉽게 생성하여 단위 테스트를 진행할 수 있는 오픈소스 프레임워크이다. 아마 프로젝트에서 테스트 코드를 짜본 경험이 있다면 Mockito를 한 번쯤 써봤을 것이다. Mock 프레임워크는 Mockito이외에도 EasyMock, JMock 등이 있다. 그럼 Mockito를 왜 사용하는 걸까? 먼저 다음 예시 코드를 보며 알아보자. @Service public class PostService { private PostRepository postRepository; public PostService(PostRepository postRepository) { this.postRepository = postRepository; } public Pos..
[Java] hashCode()

[Java] hashCode()

2023.07.02
hashCode() hashCode()는 객체, 즉 Object에 정의되어 있다. hashCode()는 객체의 주소 값을 변환하여 생성한 고유한 정수 값이다. 만약 같은 객체를 참조하고 있다면 hashCode 값은 동일하게 나온다. 예시로, 다음과 같이 작성하여 출력해보면 정수값을 확인해볼 수 있다. class Person { } public class Test { public static void main(String[] args) { System.out.println(new Person().hashCode()); // ex) 798154996 } } Java의 모든 객체의 최상위 부모는 Object이므로 hashCode() 메서드를 Override하여 재정의할 수 있다. equals()와 hashCo..
[Baekjoon] 16985: Maaaaaaaaaze

[Baekjoon] 16985: Maaaaaaaaaze

2023.06.14
문제 아... 너무 길다 다음 링크를 통해 자세한 내용을 확인해보자. [Baekjoon] 16985: 매애애애애애애애애즈 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net 3차원 미로 찾기 문제이다. 여기서 조건은 다음과 같다. 판은 회전할 수 있다. 판은 순서가 바뀔 수 있다. 꼭짓점이면서 1인 곳으로만 들어갈 수 있다. 정반대 꼭짓점으로만 나올 수 있다. 위를 고려하면서 풀면 그냥 풀린다. 스터디원 모두 막판 원큐 세레모니를 보여주고 있다. 풀이 내 풀이 import java.io.Bu..
[Baekjoon] 15732: 도토리 숨기기

[Baekjoon] 15732: 도토리 숨기기

2023.06.14
문제 욕심 그득한 다람쥐가 도토리를 나름 머리써서 숨기는 걸 찾는 문제이다. 풀이 내 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class Q15732 { static class Dotori { private int start; private int end; private int gap; public Dotori(String start, String end, String gap) { this.start = Integer.parseInt(start); this.end = Int..
[Baekjoon] 16947: 서울 지하철 2호선

[Baekjoon] 16947: 서울 지하철 2호선

2023.06.14
문제 순환선의 특정 역과 순환선이 아닌 역 사이의 거리를 구하는 문제이다. 예를 들면 까치산은 순환선과 거리가 4, 도림천은 거리가 1이다. 풀이 내 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Q16947 { private static int n; private static List graph; private static boolean[] visited; private static int[] cycle; private static boolean[] check; private static int[] distances; p..
  • 최신
    • 1
    • 2
    • 3
    • 4
    • ···
    • 9
  • 다음

정보

Arc 블로그의 첫 페이지로 이동

Arc

  • Arc의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (106)
    • Language (28)
      • C++ (0)
      • C# (0)
      • Java (28)
    • Algorithm (47)
      • Algorithm (15)
      • Data Structure (6)
      • PS (26)
    • Computer Science (22)
      • Design Pattern (1)
      • Network (14)
      • OS (7)
    • Game (0)
      • Unity (0)
    • Backend (3)
      • Spring (1)
      • JPA (2)
    • DB (0)
      • SQL (0)
    • DevOps (2)
      • AWS (0)
      • Docker (2)
      • Jenkins (0)
      • Nginx (0)
    • Software Engineering (4)
      • OOP (4)
    • AI (0)
      • Machine Learning (0)
    • Others (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 그래프
  • graph
  • algorithm
  • network
  • 자바
  • java
  • 네트워크
  • 알고리즘

나의 외부 링크

정보

SeoArc의 Arc

Arc

SeoArc

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © SeoArc. Designed by Fraccino.

티스토리툴바