프로젝트를 하며 단순히 결과물을 만들어내는 것에 찌들어 살다보면 그 내부적인 원리는 모른 채 누군가 만들어 놓은 것들을 활용하고만 있는 나를 발견하곤 한다. 그런 나를 내부적인 원리 지식들과 기초적인 CS 지식들로 하여금 채찍질하기 위하여 이렇게 차근차근 조그마한 것들을 적자. 컴파일 Compile 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정 다시 말해, 개발자가 이해할 수 있는 프로그래밍 코드들을 컴퓨터가 이해할 수 있도록 기계어로 변환하는 작업을 의미한다. 이러한 작업을 해주는 프로그램을 컴파일러(Compiler)라고 한다. Java의 경우, JVM(Java Virtual Machine)에서 실행 가능한 바이트 코드 형태의 클래스파일이 생성된다. 링크 Link 분리된 소스파일들을 컴파일 ..

"웹 서버와 웹 어플리케이션 서버의 차이를 아시나요?" 이번 면접의 질문이었다. 서버공부를 한지 오래되지 않은 나로서 매우 기본적인 백엔드 개발자 면접 질문임에도 답할 수 없었다. 면접이 끝나고, 검색해보며 내 자신이 너무 부끄러웠다. 다시 공부해보자 라는 마음에서 이렇게 작성한다. 이 둘의 개념과 차이를 알아보기 이전에 Static pages, Dynamic pages에 대해 알아볼 필요가 있다. Static pages - image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들을 의미한다. - 웹 서버에서 요청에 알맞은 파일을 반환하며, 항상 동일한 페이지를 반환한다. (말 그대로 정적인 컨텐츠) - 웹 서버에서 제공한다. Dynamic pages - 들어온 요청..
Java를 공부하다보면 해당 데이터가 어떤 클래스인지 확인해보고 싶을 때가 있다. 그러면 단순히 getClass() method를 사용하면 된다. Object 클래스에서 상속되어 모든 클래스에서 사용이 가능하다. // class java.lang.Integer System.out.println(Integer.valueOf(20201110).getClass()); // class java.lang.Double System.out.println(Double.valueOf(20201110.0).getClass()); // class java.lang.String System.out.println("Hello!".getClass()); // class java.util.ArrayList System.out.pr..

Bluetooth Low Energy (BLE) BLE란? 과거부터 기기들간의 무선 연결은 주로 Bluetooth 기술을 사용해왔다. 이들은 기기간에 마스터, 슬레이브 관계를 형성하여 통신하는 Bluetooth Classic이라는 방식을 이용했다. 이 기술을 사용하면서 사람들이 걱정한 문제들은 ‘Bluetooth를 연결하면 배터리가 빨리 소모된다’, ‘사용하지 않을 때는 꺼놓아야한다’ 등 같은 배터리 관련 문제들이었다. 실제로도 무선을 연결하여 사용할 수 있는 편리함을 주었지만, 연결이 되어 사용되는 동안에는 배터리 소모량이 컸기 때문에 많은 불편함이 존재했다. 이러한 문제를 해결하기 위한 것이 Bluetooth Low Energy (BLE)이다(Bluetooth Smart라고 불리기도 한다). 2010..

맨날 헷갈리는 3가지. 기본적인 지식이 부족한 것과 비슷한 이름으로 계속 혼동이 온다. 이전에도 정리했던 것 같은데 다시 정리 ! JDK: Java Development Kit / 자바 개발 도구 JRE : Java Runtime Environment / 자바 실행 환경 JVM : Java Virtual Machine / 자바 가상 기계 각 관계는 아래 그림으로 이해하면 된다. JDK - JRE - JVM 순으로 존재하고, JVM이 OS에 의존적이기 때문에 그것에 맞게 JVM을 포함하는 JRE가 존재하고, JRE를 포함한 개발 킷인 JDK가 존재한다.

pandas에 PR을 날렸는데, 진짜 오류 날만한게 없는데 계속 오류가 났다. 진짜 미치는 줄 알았는데, Member께서 친히 알려줬다. 바로 isort 에러 였다. isort란 간략히 말하면 python에서 import하는 라이브러리들을 자동으로 정렬해주는 python utility/library이다. 정확한 내용은 아래 링크 참조 https://pypi.org/project/isort/ isort A Python utility / library to sort Python imports. pypi.org 사용법은 그냥 prompt에서 아래처럼 하면 Fixing 된다. isort directory_name/file_name.py 오픈소스에서는 규칙을 엄청 중요시한다. 매우 많은 코드들이 구성되어 있다보니..

Html video tag를 활용해 video streaming을 구현하고 있었다. 여러 오픈소스와 기존 소스들을 통합해서 사용했고, 결국 비디오 파일을 업로드하고, 재생해 볼 수 있는 웹 페이지를 구축했다. 그래서 기존에 가지고 있는 mp4 파일 영상들(학부연구용 10초 이내 짧은 영상)을 업로드 했는데....... 오류없이 업로드는 되나, 재생에 있어서 영상이 나오지 않고 소리만 나오는 문제가 발생했다. 그래서 mp4 파일형식을 바꿔보기도 하고... 모델을 수정해보기도 하고.... 여러 실험을 하다가 바보같음을 깨달았다. 아니, 근데 재생이 된다는건 파일은 제대로 넘어갔다 이건데 뭐지! 그래서 찾아본 결과, 인코딩 방식에서 문제가 있다고 한다. (매우 간단한 결말) https://stackoverfl..
- Total
- Today
- Yesterday
- HTTP
- c++
- container
- 쿠버네티스
- MySQL
- python
- java
- 백준
- Intellij
- 로그
- 클린 아키텍처
- boj
- jasync
- 하루
- Kubernetes
- tag
- Algorithm
- 일상
- Spring
- Log
- OpenTelemetry
- Clean Architecture
- Spring boot
- WebFlux
- 비동기
- gradle
- docker
- 알고리즘
- Istio
- k8s
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |