Optional NPE (Null Pointer Exception) 정의 Null 때문에 발생하는 Runtime Exception ( java.lang.NullPointerException ) 변수의 값이 Null임에도 그것을 인지하지 못하고 해당 자료/객체형의 메서드를 호출하는 등에서 문제가 발생 Null 자체의 의미가 모호해 개발/유지보수/디버깅 시 문제를 일으킴 NPE를 방지하기 위해선 어떤 방법을 사용했는가? 사용 전, Null check public int getAllPrice(Lotto lotto) { if (lotto != null) { return lotto.getCount() * lotto.getPrice(); } } 간단해보이지만, Null check 해야하는 변수가 하나가 아니라면? ..
Stream 정리 글들을 보다보면 종단 연산 전까지는 연산이 수행되지 않는다고 한다. -> 그럼 어떻게 연산을 하는 건가? 연산 과정은 대략적으로 아래와 같다. - 정확하지 않고 이해를 위해 쉽게 표현했다. - Stream 데이터를 가지고 Map, Filter 같은 중간 연산을 거쳐 foreach 같은 종단연산까지 여러 스트림 클래스들로 쌓여진다. - 종단연산을 만나면 이제 스트림으로 쌓아놨던 데이터들을 가져오기 시작한다. 맨 위 종단연산에서 기존 데이터가 필요해 아래 스트림을 까게 되고, 그 과정이 반복되다보면 맨 아래 본 데이터를 가지고 스트림 연산을 수행하고 그 결과를 가져오고 가져오고 하는 행위가 수행된다. - 그 과정에서 중간 연산으로 데이터들이 조정되고 수정되고 필터된다. 그렇게 마지막 종단 ..
Network Simulator 3 네트워크 시뮬레이터(Network Simulator)는 가상의 네트워크 상황을 만들어 네트워크의 동작과 성능 및 영향을 측정하고 분석하는 장치 및 소프트웨어를 의미한다. 다양한 소프트웨어들이 있으나, 대표적으로 NS-2, NS-3가 있다. 이 글에서는 NS-3의 한 예제에 다루고자 한다. 만약 NS-3에 대해 더 공부해보고 싶다면, 아래 문서들을 참조하자. 공식 documentation https://www.nsnam.org/ 한국통신학회 주관 ns-3 단기 강좌 및 실습 https://sites.google.com/a/mwnl.snu.ac.kr/ns-3/home Problem NS3를 사용해 다음 그림의 Topology를 구현해보자. LAN은 CSMA를 사용할 것 U..
알고리즘, 코딩 테스트 문제를 풀다보면 정방형 2차원 배열을 회전시켜 방법을 찾아가는 문제들이 종종 보인다. 대표적으로는 카카오의 2020 블라인드 채용 문제3 이 있다. 배열을 회전시키는 문제의 경우, 계속 반복적으로 배열의 회전을 요하기 때문에 함수로 만들어놓고 활용하면 간결하고, 사용하기도 쉽다. 회전의 경우 90도, 180도, 270도 회전이 있다. '180도 할거면, 90도 2번 하면 되는 것 아니야?' 라는 질문도 있을 수 있겠다. 그것도 당연히 맞다. 하지만 단순히 90도의 회전을 요구하는 것이 아닌 많은 양의 180도 회전 또는 270도 회전을 해야할 상황이라고 하자. 180도 회전 연산을 1번 하는 상황에서는 90도 회전 연산을 2번 해야하기에 앞 상황에서 치자면 연산이 2..
틀린 부분 또는 더 효율적인 접근법에 대해 피드백 주시면 감사하겠습니다! BOJ 1021 회전하는 큐 문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다. 큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지..
안녕하세요. pytest 이번 글에서는 pytest를 알아보고자 합니다. pytest란 무엇인가? 정말 이름 그대로 py(thon)을 test 하는 프레임워크를 의미합니다. pytest 공식 홈페이지에서는 다음과 같이 설명하고 있습니다. pytest is a mature full-featured Python testing tool that helps you write better programs. Python testing tool로써 좋은 프로그램을 작성하도록 도와준다라, 이걸 이해하기 위해서는 왜 테스트가 존재해야 하는가에 대해 생각할 필요가 있습니다. TDD 최근 많이 주목받고 있는 TDD (Test Driven Development)를 아시나요? 짧게 설명드리면 본격적인 개발에 들어가기 전에 테스..
제 공부 정리를 목적으로 작성된 글입니다. 혹시, 잘못된 부분이 있다면 피드백 부탁드립니다 :-) 진로에 대해 고민하고 있는 와중, 교수님께서 논문 한 번 읽어보라고 추천해주셨다. Binary increase congestion control (BIC) for fast long-distance networks CUBIC: a new TCP-friendly high-speed TCP variant 최근 네트워크 전공시간에 배웠던 TCP를 다시 공부해보는 시간을 가지기도 했고, 기존 Tahoe, Reno 같은 고전적인 방식이 아닌 최신 congestion control 방식은 어떠한 것이 있는가를 공부해보고 싶기도 했다. 사실 근데 BIC-TCP, CUBIC 또한 최신 방식은 아니다. BIC-TCP의 경우 ..
- Total
- Today
- Yesterday
- WebFlux
- 알고리즘
- Clean Architecture
- docker
- 클린 아키텍처
- Intellij
- 쿠버네티스
- k8s
- python
- 일상
- hexagonal architecture
- Spring
- Algorithm
- container
- Spring boot
- tag
- 로그
- Istio
- jasync
- Log
- c++
- 비동기
- java
- MySQL
- 하루
- Kubernetes
- gradle
- 백준
- HTTP
- boj
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |