본문 바로가기

분류 전체보기17

2025년 7월 독서 및 리뷰 - A Tour Of C++ 3rd Edition그동안 야매로 C++을 배웠어서, 문법과 특징을 제대로 익혀보기 위해 책을 펼쳤다.virtual, vtbl, =0, =delete 등 C++에서 다형성을 구성하는 방식 등을 알 수 있었다.템플릿을 활용한 프로그래밍을 많이 지원하고 있다는 것을 알게 됐다. 컴파일 타임에 연산을 수행한다던지, concept나 requires를 활용해서 복잡한 타입 검사를 수행하는 등 템플릿 관련 기능을 밀어주고 있음을 알게 됐다.그 밖에도 rvalue, 이동, RAII, 스마트 포인터, 뮤텍스, 멀티쓰레딩 등등 상당히 많은 내용들이 들어 있었다.한 번에 책의 모든 내용을 소화하지는 못했고, 몇 번 더 읽어봐야 할 것 같다. - 가장 빨리 만나는 Go 언어역시 야매로 배운 Go.. 2025. 8. 3.
gradlew 명령어 알아보기 gradlew를 기반으로 gradle을 조작할 수 있다. 윈도우 환경에서는 gradlew.bat을 이용하여 이를 활용할 수 있다.가장 자주 사용되는 명령어 위주로 정리하였다. gradlewgradlew에 대해 간략한 소개 문구가 나온다. gradlew --helpgradlew에서 적용할 수 있는 옵션들을 나열한다. gradlew help --task [task]특정 태스크에 대한 설명과 가용한 옵션을 나열한다. gradlew tasksgradle에서 실행 가능한 태스크들을 확인할 수 있다. 적용한 플러그인에 따라 사용 가능한 명령어들이 추가된다. gradlew bootRun스프링부트를 실행한다. gradlew bootTestRun테스트 환경으로 스프링부트를 실행한다. gradlew bootBuildIm.. 2025. 8. 3.
fzf 소개 및 간략한 사용법 문자열 fuzzy search를 활용한 오픈소스 리눅스 커맨드. 여러 기여를 통해 다양한 기능들이 추가되었다. 아래 깃허브 리포지토리에서 소스코드를 확인할 수 있다.https://github.com/junegunn/fzf GitHub - junegunn/fzf: :cherry_blossom: A command-line fuzzy finder:cherry_blossom: A command-line fuzzy finder. Contribute to junegunn/fzf development by creating an account on GitHub.github.com 윈도우에서 `winget install fzf`, 우분투에서 `sudo apt install fzf` 등으로 설치할 수 있다.타 운영체제에서.. 2025. 7. 17.
JSpecify와 스프링 프레임워크 7에서의 적용 tl;dr스프링 프레임워크 7부터, null 체크 시 JSR-305를 더 이상 사용하지 않고 JSpecify를 사용하게 된다.7.0.0 스냅샷 Documentation에서 마이그레이션 가이드를 확인할 수 있다. JSpecify는, 해당 스택 오버플로우 질문과 같이, 자바에서 null check를 위해 사용하는 어노테이션이 뿔뿔이 흩어져 있어, null check의 표준이 되고자 만들어졌다. JSpeify는 명세로, 어노테이션만을 제공하고 있으며, 각 어노테이션이 어떤 방식으로 활용되어야 하는지에 대한 설명이 이루어져 있다. 스프링 프레임워크 7부터, null 체크 시 JSR-305를 더 이상 사용하지 않고 JSpecify를 사용하게 된다. `@NonNull`, `@Nullable`은 리턴 값, 파라미터,.. 2025. 7. 12.
Jakarta EE의 구현체들을 알아보자 구현체들은 documentation에 설명과 사용설명서가 잘 정리되어 있어, 읽어보면 좋다.명세가 아닌 사용설명서로써, 어떤 기능을 구현해야 하느냐보단, 이게 무엇이고 어떻게 사용하는 것인지에 대한 설명이 주가 되어서 읽기 좋다. 하이버네이트 https://hibernate.org/JPA 구현체인 Hibernate ORM으로 가장 유명한 구현체이다.JPA 말고도 Validator와 같은 타 명세도 구현하고 있다.Wildfly에서 해당 구현체를 사용하고 있으며, 레드햇 산하 JBoss가 해당 프로젝트를 관리하고 있다.2024년 9월 Jakarta EE 11에서 제시된 명세인 Jakarta Data도 구현해뒀다. (Hibenate Data Repositories)`@Entity`, `@Column` 외 기타.. 2025. 7. 1.
가상화와 관련한 내용들을 알아보자 알고 있는 내용을 정리하고 기록하기 위해 작성하였습니다. 도커는 프로세스 가상화 도구이다. 리눅스의 리소스 격리 기능인 cgroups와 파일 레이어를 쌓아올리는 union file system을 활용하여 컨테이너를 구성하고 있다. 하이퍼바이저와 자주 비교되는데, 하이퍼바이저는 OS 자체를 가상화하는 도구이다. 하이퍼바이저는 타입 1과 타입 2로 구분되는데, 타입 1의 경우는 하드웨어 위에 하이퍼바이저를 두고, 그 위에 OS를 띄우는 방식이고 타입 2의 경우에는 하드웨어 위 OS 위에 하이퍼바이저를 두고, 그 위에 OS를 띄우는 방식이다. 하이퍼바이저 타입 1으로는 리눅스의 kvm-qemu, 마이크로소프트의 hyper-v가 유명하며, 타입 2의 경우에는 vmware의 virtualbox 등이 유명하다. 도.. 2025. 6. 22.