개발노트(150)
-
GitHub Action으로 CI/CD
WorkFlow 생성 GitHub 프로젝트 생성 후 Actions 탭으로 이동해 "New workflow" 버튼을 눌러 WorkFlow를 생성합니다. 배포하고자 하는 프로젝트언어와 같거나 비슷한 workflow를 찾습니다.없으면 "set up a workflow yourselg"를 클릭해 직접 만들면 됩니다. 배포 파일 생성파일은 .github/worflows 아래 만들어지게 됩니다.직접 작성한 YML 파일의 예는 아래와 같습니다.name: Deploy to Raspberry Pion: workflow_dispatch: push: branches: - masterjobs: build: runs-on: ubuntu-latest steps: - uses: actions/c..
2024.07.11 -
람다 캡처링 (Lambda Capturing) 정리
람다 캡처링은 자바 람다 표현식이 자신이 정의된 범의 외부에 있는 변수를 사용할 수 있는 기능을 의미한다.캡처링 : 람다 표현식이 외부 변수를 사용하기 위해 이를 캡처하는 기능final : 람다 표현식에서 사용되는 로컬 변수와 매개변수는 변경되지 않도록 제한해야 함일관성, 안정성, 스레드 안전성, 컴파일러 최적화사용 예 : 콜백 함수, 비동기 처리 왜 final 또는 사실상 final이어야 하는가?로컬 변수와 메서드 매개변수는 final 또는 사실상 final이어야 람다 표현식 내부에서 사용할 수 있으며 이유는 아래와 같다.일관성 및 안정성: 람다 표현식은 비동기 코드나 콜백으로 사용되는데 이 때 람다 표현식 내부에서 사용하는 외부 변수가 변경될 수 있다면, 값이 예상치 못하게 변경될 위험이 있기 때문에..
2024.05.20 -
CentOS 7 to Rocky Linux 8
CentOS Linux 7가 2024년 6월 30일 지원 종료(End of Life, EOL)될 예정으로 OS 마이그레이션이나 Rocky 8 OS 설치 후 서비스를 이전하는 방법 둘 중 하나를 진행해야 한다. https://docs.rockylinux.org/guides/migrate2rocky/ Migrating To Rocky Linux - DocumentationHow to migrate to Rocky Linux from CentOS Stream, CentOS, AlmaLinux, RHEL, or Oracle LinuxPrerequisites and assumptionsCentOS Stream, CentOS, AlmaLinux, RHEL, or Oracle Linux running on a har..
2024.05.18 -
StringJoiner, StringBuilder 정리
실무에서 관습적으로 StringBuilder를 사용해 구분자를 처리하는 로직을 보고 StringJoiner로 리팩터링을 진행하며 관련 내용을 정리한다. StringBuilderStringBuilder는 문자열을 연결할 때 사용하며구분자를 추가 할 때 아래와 같이 사용한다.StringBuilder builder = new StringBuilder();builder.append("Hello");builder.append(",");builder.append("World");String result = builder.toString(); // "Hello,World" StringJoinerStringJoiner는 내부에서 StringBuilder를 사용해 문자열과 문자열을 구분자로 연결하는 작업을 하며구분자..
2024.05.18 -
Nginx Reverse Proxy 정리
리버스 프록시란?리버스 프록시는 클라이언트로부터의 요청을 받아 이를 적절한 백엔드 서버에 전달하고 백엔드 서버의 응답을 다시 클라이언트로 전달하는 역할을 한다.이 글에서는 Nginx 리버스 프록시에 대한 주요 기능과 기본 설정만 정리한다.자세한 내용은 공식 문서 참고 https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ NGINX Reverse Proxy | NGINX DocumentationNGINX Reverse Proxy Configure NGINX as a reverse proxy for HTTP and other protocols, with support for modifying request headers and fine-tu..
2024.05.18 -
InputStream, OutputStream 정리
스트림(Stream)스트림이란 데이터를 연속적으로 처리하는 개념이다. 데이터가 한번에 전체가 아닌, 일정한 크기 단위로 전달되거나 처리되는 것을 말하며실시간 데이터 처리, 자원을 절약하여 효율적인 데이터 처리에 유리하다.Java에서 사용하는 InputStream, OutputStream은 'java.io' 패키지에 속하며 파일, 네트워크 연결, 메모리 배열 등의 데이터 소스로부터 데이터를 읽거나 쓸 때 사용한다. InputStream바이트 단위로 데이터를 읽기 위한 추상 클래스이며 주요 메서드는 아래와 같다.int read() : 하나의 바이트를 읽고, 해당 바이트를 정수(0-255)로 반환한다. 더 이상 읽을 데이터가 없으면 -1을 반환한다.int read(byte[] b) : 바이트 배열 'b'에 데..
2024.05.18