728x90

전체 글 75

CI/CD?

CI/CD(Continuous Integration and Continuous Deployment/Delivery)는 소프트웨어 개발 및 배포 프로세스를 자동화하여 효율성을 높이고, 개발부터 운영까지의 사이클 타임을 단축하는 데 초점을 둔 접근 방식입니다. 이를 이해하기 위해 각 단계와 예시를 살펴보겠습니다.1. CI (Continuous Integration)개념CI는 개발자들이 변경한 코드를 자주, 그리고 지속적으로 중앙 저장소에 병합하여 품질을 보장하는 프로세스입니다. 각 변경 사항은 자동화된 테스트를 통해 코드의 품질을 검증합니다. 예시개발자가 새 기능을 구현:한 개발자가 새로운 로그인 기능을 추가하고 이를 GitHub에 푸시합니다.자동화 빌드 및 테스트:푸시된 코드가 CI 서버(예: Jenkin..

etc 2025.01.16

MSA 서비스의 설계 및 구현과 예시

MSA(Microservices Architecture) 서비스는 하나의 애플리케이션을 여러 개의 독립적인 마이크로서비스로 나누어 개발, 배포, 운영하는 아키텍처입니다. 이 방식은 각각의 서비스가 독립적으로 작동하며, 특정 도메인 기능에만 집중하도록 설계됩니다.MSA 서비스를 구현하려면, 시스템을 독립적인 마이크로서비스로 나누고 이를 연결하는 기반을 마련해야 합니다. 이를 구현하기 위한 과정을 이커머스 플랫폼 예제를 중심으로 자세히 설명하겠습니다.1. 서비스 설계먼저 각 서비스를 분리합니다. 이커머스 플랫폼의 경우 다음과 같이 나눌 수 있습니다:사용자 서비스: 사용자 등록, 인증, 프로필 관리.상품 서비스: 상품 등록, 조회, 수정.주문 서비스: 주문 생성, 상태 관리.결제 서비스: 결제 처리 및 상태 ..

etc 2025.01.15

java.net.SocketTimeoutException: Read timed out 오류

최초 로그 (15:31:24)발생 시간: 2024-12-19 15:31:24.044로그 레벨: ERROR원인:ResourceAccessException 발생.I/O error 발생: GET 요청에서 Read timed out.java.net.SocketTimeoutException: Read timed out: 요청에 대한 응답이 일정 시간 내에 오지 않아 연결이 끊어졌음.원인애플리케이션이 인증 서버에 GET 요청을 보냈으나, 인증 서버의 응답을 기다리는 동안 타임아웃이 발생했습니다. 이 경우, 네트워크 지연, 서버 과부하, 또는 타임아웃 설정이 너무 짧은 경우가 원인일 수 있습니다.문제 분석 및 원인1. 토큰 만료 문제 (OAuth2Exception)만료된 토큰 사용: 클라이언트가 만료된 OAuth2 ..

Deadlock found when trying to get lock; try restarting transaction 오류

데드락은 데이터베이스에서 두 개 이상의 트랜잭션이 서로 자원을 점유한 상태에서, 상대방이 점유한 자원을 요청하며 무한 대기 상태에 빠지는 상황을 말합니다.결과적으로 이 상태에서는 트랜잭션이 진행되지 못하며, 데이터베이스는 교착 상태를 해결하기 위한 조치를 취하지 않으면 정상 작동에 장애가 발생합니다.Deadlock 발생 과정트랜잭션 A와 B의 동시 실행:트랜잭션 A가 자원 X를 잠그고, 이후 자원 Y를 요청.동시에 트랜잭션 B가 자원 Y를 잠그고, 이후 자원 X를 요청.자원 충돌:트랜잭션 A는 자원 Y를 점유한 트랜잭션 B를 기다리고,트랜잭션 B는 자원 X를 점유한 트랜잭션 A를 기다립니다.Deadlock 발생:두 트랜잭션이 서로 상대방의 자원을 기다리며 대기 상태에 빠지고, 진행이 불가능해집니다.   ..

프롬프트 엔지니어링?

프롬프트 엔지니어링(Prompt Engineering)은 인공지능 모델(ChatGPT 등)이 원하는 결과를 생성할 수 있도록 입력 문구(프롬프트)를 설계하고 최적화하는 기술입니다. 이를 통해 모델의 성능을 극대화하고, 사용자가 기대하는 정확하고 유용한 응답을 얻을 수 있습니다. 아래에 구체적인 예시와 기법을 들어 설명하겠습니다.1. 명확한 프롬프트 제공AI 모델은 입력이 명확하고 구체적일수록 더 적절한 출력을 제공합니다.예시 1:부정확한 프롬프트:"내일 날씨 어때?"개선된 프롬프트:"내일 서울의 오전 9시부터 오후 6시까지의 날씨와 최고/최저 기온을 알려줘."효과:시간, 장소, 세부사항을 명확히 지정함으로써 모호성을 제거하고 원하는 정보를 정확히 받을 수 있습니다.2. 출력 형식 지정원하는 결과를 특정 ..

etc 2024.12.18

Devops?

DevOps는 소프트웨어 개발(Development)과 운영(Operation)을 통합하는 방식으로, 협업을 통해 소프트웨어 개발 및 배포 주기를 단축하고 품질과 안정성을 높이는 것을 목표로 합니다. DevOps는 기술, 프로세스, 문화를 통합하여 개발과 운영 팀 간의 협업을 촉진하고, 자동화 및 효율성을 극대화합니다.DevOps의 주요 업무CI/CD 파이프라인 설정 및 관리CI(Continuous Integration): 개발자들이 코드를 자주 병합할 수 있도록 빌드 및 테스트 자동화를 구현.CD(Continuous Delivery/Deployment): 변경 사항이 자동으로 프로덕션 또는 배포 환경에 배포되도록 설정.도구: Jenkins, GitLab CI/CD, CircleCI, Travis CI,..

etc 2024.12.11

OpenSSL?

OpenSSL은 암호화와 보안 통신을 지원하는 오픈소스 소프트웨어 라이브러리입니다. 주로 HTTPS, SSL/TLS 프로토콜 기반의 암호화 통신을 설정하는 데 사용됩니다. OpenSSL은 데이터 암호화, 디지털 서명, 인증서 생성 및 관리, 키 관리 등의 다양한 기능을 제공합니다.주요 기능SSL/TLS 통신 지원:안전한 데이터 전송을 위해 SSL/TLS 프로토콜 구현.HTTPS 웹 서버와 클라이언트 간 암호화된 연결 설정.암호화 및 복호화:대칭키 암호화(AES, DES 등) 및 비대칭키 암호화(RSA, ECC 등) 지원.데이터를 안전하게 암호화하거나 복호화하는 데 사용.디지털 인증서 관리:X.509 인증서 생성, 서명, 확인.자체 서명 인증서(Self-signed Certificate) 생성 지원.난수 ..

etc 2024.12.03

csv 파일 인코딩 이슈 해결법

데이터베이스에서 로우 데이터를 추출하는 등, 데이터를 csv 파일로 내려받아 데이터를 확인하면 인코딩이 깨져 제대로 보이지 않는 경우가 있습니다. 이 때, 조치할 수 있는 해결법에 대해 말씀드리고자 합니다. 1. csv 파일 추출먼저 테스트용 로우 데이터를 csv 파일로 추출합니다.아래는 테이블에서 로우 데이터를 csv 파일로 추출하는 쿼리문 예시입니다.SELECT * FROM your_tableINTO OUTFILE '/path/to/your_file.csv'FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';쿼리문에서 세부적인 데이터 조건은 따로 추가하여 사용하시면 됩니다. 2. csv 파일 엑셀로 open 3. 메모장으로 다시 ope..

java.sql.SQLTransientConnectionException: hikari-rw-chat - Connection is not available, request timed out after 30000ms 오류 해결방법

Connection Timeout 오류 분석로그에서 나타난 java.sql.SQLTransientConnectionException: hikari-rw-chat - Connection is not available, request timed out after 30000ms 오류는 HikariCP에서 제공하는 데이터베이스 연결 풀의 연결 요청이 30초 동안 대기한 후에도 연결을 확보하지 못해 발생하는 연결 시간 초과 문제입니다. 주요 오류 내용해당 오류는 SQL 쿼리가 실행되기 전 데이터베이스 연결 풀에서 유효한 연결을 제공하지 못한 상황을 나타냅니다. 일반적으로 이는 데이터베이스 부하가 크거나, 연결 풀의 설정이 충분하지 않아서 발생합니다. 해결 방안HikariCP 설정 최적화:HikariCP의 연결 풀..

DB/MariaDB 2024.11.21

[MariaDB] Galera cluster flow control

Galera Cluster의 Flow Control은 Galera 클러스터에서 노드 간의 데이터 동기화를 관리하는 메커니즘으로, 클러스터의 안정성과 데이터 일관성을 유지하기 위해 중요한 역할을 합니다.Galera는 동기식 멀티마스터 데이터베이스 클러스터로 설계되어 데이터 무결성과 일관성을 보장하지만, 노드 간 데이터 동기화 속도와 처리 속도 차이를 조정해야 하는 상황이 종종 발생합니다. Flow Control은 이런 상황에서 클러스터의 전체 성능과 안정성을 조율합니다.1. Galera Cluster의 동작 원리Galera 동기화 구조Galera는 **Write Set Replication(WSREP)**을 사용하여 트랜잭션 데이터를 클러스터 내 모든 노드에 복제합니다.각 노드는 Write Set을 받고,..

DB/MariaDB 2024.11.18
728x90