일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그리디 알고리즘
- 제태크
- 자바
- 백준
- 인플레이션
- 현금흐름표
- 접근제어자
- 무디스
- 배당성장
- 주린이
- FCF
- 잉여현금흐름
- Java
- StringBuffer
- 오버라이딩
- object
- 알고리즘
- 미국주식
- 객체지향
- 주식
- 다형성
- 금리인하
- XLF
- 금리인상
- etf
- mco
- 프로그래머스
- 기업분석
- javascript
- S&P500
- Today
- Total
목록2025/01 (5)
오늘의하루
MySQL의 쿼리 성능을 최적화하기 위해서는 실행 계획을 분석해야 하는데 특히 실행 계획의 type 컬럼은 MySQL이 쿼리를 처리하는 방식 즉 데이터에 접근하는 방법을 보여줍니다.이 정보를 활용하면 성능을 최적화할 수 있는 중요한 힌트를 얻을 수 있기 때문에 성능 최적화 첫 단계로 이번 글에서는 type 컬럼에 표시될 수 있는 12가지 값 중 5개의 대표 type을 소개하고 각 값이 성능에 미치는 영향을 분석해 보겠습니다.1. constconst는 가장 효율적인 검색 방법으로 MySQL이 테이블에서 단일 행을 조회하는 경우입니다.Unique 속성을 가진 Index일 경우에만 가능합니다.CREATE TABLE users ( id INT PRIMARY KEY, username VARCHAR(10..
최근 MySQL을 공부하면서 선착순 쿠폰 발급을 효율적으로 처리하는 로직을 고민해보았습니다.이 글에서는 MySQL 8.0의 고급 기능을 활용하여 동시성 제어와 쿠폰 발급 로직을 구현하는 방법을 정리해 보겠습니다.MySQL 8.0 고급 기능MySQL에서 SELECT ~ FOR UPDATE를 사용하면 다른 트랜잭션에서 읽기나 쓰기를 시도할 경우 해당 행이 잠금이 해제될 때까지 대기하게 되는데 MySQL 8.0에서는 이를 보완하고 동시성을 효율적으로 처리하기 위해 다음과 같은 기능이 추가되었습니다.1. NO WAIT해당 기능은 잠금된 행을 만나면 대기하지 않고 즉시 예외(Lock wait timeout exceeded)를 던집니다.2. SKIP LOCKED해당 기능은 잠금되지 않은 행만을 대상으로 작업을 수행..
Go 언어에서 값 타입은 복사할 때 깊은 복사가 이루어지며 참조 타입은 얕은 복사가 이루어집니다.1. 값 타입 (Value Type)값 타입은 변수에 할당될 때 값 자체가 복사(깊은 복사)됩니다.Go에서 기본적으로 제공하는 값 타입으로는 int, float, struct 등이 있습니다.package mainimport "fmt"type Jang struct { X, Y int}func (j *Jang) Jangto(i int) { j.X = j.X * i j.Y = j.Y * i}func JangTest() { originV := Jang{1, 2} copyV := originV // 깊은 복사 copyV.Jangto(2) fmt.Println("origin..
공부를 하다 보면 "Java의 컨텍스트 스위칭 비용이 비싸다"라는 말을 자주 듣곤 하는데 이번 글에서는 왜 Java의 컨텍스트 스위칭 비용이 비싼지 정리해보았습니다.JAVA의 Thread 구조Java에서는 java.lang.Thread를 통해 스레드를 생성하게 되는데 이 과정에서 JVM은 플랫폼 스레드를 만들고 이를 OS 스레드와 연결되고 이 OS 스레드는 다시 커널 스레드와 연결됩니다. 즉, Java에서는 스레드가 JVM 플랫폼 스레드 → OS 스레드 → 커널 스레드의 1:1:1 관계로 동작합니다.- JVM 스레드 : 크기가 작음- OS 스레드 : JVM 스레드에 비해 훨씬 큼Context Switching컨텍스트 스위칭은 실행 중인 스레드를 변경할 때 현재 스레드의 상태(레지스터, 스택 포인터, 메모..
최근 Go 언어에 대한 흥미가 생겨 간단한 API 서버를 Go로 만들고 이를 Spring Eureka에 등록해보자는 생각이 들어서 이에 대한 방법을 작성했습니다.1. 필요한 PackageGo에서 사용할 패키지는 Gin과 eureka-client이며 설치하려면 Go 모듈을 사용하여 필요한 의존성들을 추가해야 합니다.go get github.com/gin-gonic/gingo get github.com/xuanbo/eureka-client2. Go 구현 코드package mainimport ( "fmt" "log" "net" "vaultis-go-module/module/decryption" "github.com/gin-gonic/gin" eureka "github.com/x..