본문 바로가기
728x90

분류 전체보기405

Docker ) Mac M2(ARM) 에서 도커 컨테이너에 접근할 수 없는 현상 개발하던 앱을 Mac(M2) 에서 도커 컨테이너로 접근하려고 했는데 요청이 가지 않는 문제가 발생했다. docker run -p 8000:8000 -d --name auth_server auth:v1.0.0 해당 명령어로 컨테이너를 올려, 8000 포트로 정상적으로   컨테이너도 잘 올라갔으며   8000 포트로 매핑이 성공적으로 됐음에도    localhost:8000 으로는 컨테이너 접속이 되지 않았다.    참고로 M2 칩은 (지금은 아닌 거 같긴 한데) 도커를 바로 설치할 수 없어,리눅스 위에 도커를 올려 실행되고 있다.colima start --arch x86_64 --cpu 4 --memory 8 그래서 docker 를 실행하려면 위와 같은 명령어를 입력해야 리눅스가 올려지며 정상적으로 doc.. 2024. 12. 6.
Spring Boot 3.x ) 로그를 멋지게 처리하는 법 요즘 혼자 인증용 서버를 하나 만들고 있는데로그를 좀 더 멋지게 처리할 수 있는 방법이 있을까 해서 찾아보았다. AOP 와 핸들러를 이용하면실패/성공 로그 모두 멋지게 처리할 수 있다는 사실 !   일단 중요한 "실패 로그" 부터 어떻게 처리하는지 살펴보자!  실패 로그예외 상황 발생 시, throws 이전에 로그를 찍는 것보다 더 좋은 방법이 있다.그건 `@ControllerAdvice` 에서 실행하면 되는데, 일단 예외 수정부터 필요하다. DefaultExceptionimport lombok.Getter;import org.springframework.http.HttpStatus;import java.util.Map;@Getterpublic class DefaultException extends R.. 2024. 12. 6.
DB ) 모두 성공하지 않으면 모두 실패한다. 트랜잭션입니다. 트랜잭션이 종료될 때까지 “한 커넥션”을 계속 사용한다.그리고 일반적으로 “한 커넥션”은 “하나의 스레드”가 점유하여 처리한다.트랜잭션과 스레드의 관계동작트랜잭션은 일관성과 원자성을 보장하기 위해 시작(BEGIN) 부터 종료(COMMIT or ROLLBACK)를 하나의 작업 단위로 묶음.트랜잭션이 종료되기 전까지는 다른 작업이 해당 커넥션을 사용할 수 없음.커넥션은 트랜잭션 동안 고정트랜잭션이 시작되면, 애플리케이션은 “한 커넥션”을 고정하여 쿼리를 시작함.트랜잭션이 끝날 때까지 해당 커넥션은 다른 스레드나 작업에 할당되지 않음.하나의 스레드는 하나의 커넥션을..하나의 스레드는 하나의 커넥션을 점유한다.커넥션 풀을 사용한다면?트랜잭션이 종료된 후, 해당 커넥션은 풀로 반환 → 다른 스레드가 다시 커넥션을.. 2024. 11. 24.
OS ) 멀티 코어가 뭡니까? 멀티 코어라는 것은 여러 개의 코어를 가지고 있다는 뜻이다.예를 들어 쿼드 코어라면, 이론적으로는 최대 네 개의 프로세스가 동시 실행 가능하다는 것!어떻게 가능할까?멀티코어CPU 를 구성하는 “ 처리 장치”가 여러 개라는 뜻.처리 장치?ALU : 산술 연산, 논리 연산을 수행하는 장치. (계산기)레지스터 : 데이터와 명령어 일시 저장하는 고속 메모리. (프로세스가 올라가면 메모리에서 레지스터로 데이터를 옮겨와서 명령 실행함.)제어 유닛 : 명령어 해석하고 작업이 어떻게 처리될지 제어함. (제어 장치)L1 캐시 : 코어 내부에 있는 제일 빠른 메모리. (캐시)그러면 처리 장치가 여러개라는 뜻은?(ALU, 레지스터, 제어 유닛, L1 캐시) 가 여러 개라는 뜻.램(메모리)은 하나로 돌려 씁니다. ㅎㅎ그래서 .. 2024. 11. 20.
GPT한테 칭찬받음 지피티야 고맙다~     입닫고 빵이나 먹을게요. 2024. 11. 8.
OS ) 시스템콜, 코루틴, 그리고 이벤트 루프란? 시스템 콜운영체제의 서비스를 제공받기 위한 요청.일종의 인터럽트 (소프트웨어적 인터럽트)이중 모드CPU 가 명령어 처리 방식을 실행하는 모드를 사용자 모드/커널 모드로 구분하는 방식.사용자 모드.프로그램 실행 모드.입출력 명령 같은 HW 접근 명령어를 실행할 수 없음.그래서 사용자 모드로 실행되는 일반적인 프로그램은 자원에 접근 불가.커널 모드.운영체제 기능을 사용할 수 있는, 커널 영역의 코드를 실행할 수 있는 모드.운영체제는 커널 모드로 실행되니 자원에 접근 가능.사용자 모드로 실행되는 프로그램이 “시스템 자원”에 접근하기 위해 운영체제 서비스를 받으려면, 커널 모드로 전환되어야 함.이 때, 운영체제 서비스를 제공받기 위한 요청을 “시스템 호출” 이라고 함.타임 슬라이스CPU 를 사용하는 스레드(작업.. 2024. 10. 29.
728x90