본문 바로가기

[나의 이야기] 제 61회 SQLD 합격 후기 목차 합격후기 공부기간공부방법 합격후기제 61회 sqld 시험에 응시하여 자격증을 취득하였다. 결과는 70/100. 합격점은 60점을 넘으면 합격이기에 넉넉하게 합격하였다. 사실 자격증 자체는 6월 정도에 취득하였다. 근데 최근에 게임회사에서 바쁘게 인턴생활을 하고 있어서, 짧게라도 후기를 남긴다는 게 이제서야 생각이나서 남겨보려고 한다. 쉬운 난이도? 시험을 보기전에 커뮤니티에서 sqld가 어렵지 않은 시험이라는 의견은 많이 들었다. 실제로 많은사람들이 가지고 있는 자격증이고, 나 또한 업무를 위해 평소에 쓰는게 쿼리문이다보니 겸사겸사 따두려고 했던 차였다. 그래서 부담스럽지 않게 생각하긴 했지만, 나는 나 자신을 믿을 수가 없기에 2주 정도는 열심히 공부했던거 같다. 3일 공부해서..
[데이터베이스] 실행 계획과 쿼리 튜닝 목차 1. 실행계획2. 실행계획에서 무엇을 봐야하는가3. 쿼리 튜닝하기 실행계획 실행 계획(Execution Plan)은 DB가 해당 쿼리를 어떻게 실행할지에 대한 전략이다. “이 쿼리를 처리하기 위해 어떤 순서로, 어떤 방식으로 데이터를 읽을 것인가” SELECT * FROM orders WHERE user_id = 10; orders 라는 테이블에 대해 user_id 값에 인덱스가 선언되어 있다면, 쿼리 실행 시 인덱스를 탔다는 가정하에 매우 빠르게 실행될 것이다. 근데 인덱스를 선언했지만 우리가 의도한 대로 쿼리를 타지 않는 경우가 있을 수 있다. 이런 경우 테이블 전체에대해 full scan을 실행하므로 안타까운 상황이 발생하게 된다. 인덱스를 탈지 타지 않을 지는 눈으로 보고도 판단..
[web-talk] 채팅서버 구현시 STOMP를 써야하는 지 에대한 고찰 목차 들어가며 Web Socket이란? STOMP란?무엇을 써야하는가 들어가며 새로운 사이드 프로젝트로 웹소켓 기반 채팅 서비스를 구현해보았다. 해당 프로젝트를 진행하면서 STOMP 방식과 웹소켓(STOMP를 사용하지 않는 형태) 방식으로 각각 구현을 해봤었는데, 이번 글에서는 STOMP와 STOMP를 사용하지 않은 Raw한 웹소켓 방식의 차이점에 대해 정리하는 글을 써보려고 한다. 인터넷에 STOMP 방식의 채팅 서버에 대해서는 정리가 많이 되있는거 같은데, 웹소켓만을 사용하는 형태에 대해서는 글이 별로 없는거 같아 이렇게 따로 정리해본다. Web Socket이란?웹에서 사용하기위한 소켓, 웹소켓 게임서버나 하드웨어 장비통신에 주로 사용되는 Raw 레벨 소켓 통신의 경우 클라이언트에서 특정 P..
스프링 AOP(Aspect-Oriented Programming) 목차 AOP란? 스프링 AOP에 대하여프록시 객체와 AOP의 원리AOP 기반 어노테이션 사용 시 주의점 AOP란?AOP(Aspect-Oriented Programming)의 사전적 정의는 아래와 같다. 컴퓨팅에서 관점 지향 프로그래밍은 횡단 관심사의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 말로만 들었을때는 조금 와닿지 않을 수 있으나 프로그래밍적으로 해석하자면,AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)는 애플리케이션의 핵심 로직(Core Logic)과 부가 기능(Cross-Cutting Concern)을 명확히 분리하기 위한 프로그래밍 패러다임이다. 일반적으로 프로그램 코드를 작성할 때, 인증이 필요한지 검사하거나 로그를..
[알게 된 것] 서버 <-> 클라 연결 유지 시 서버 부담에 대해 목차서버와 클라의 연결 유지Heartbaet 감지와 서버측 부담그럼 서버측 동시 접속자 수 관리를 왜하는가?  서버와 클라의 연결 유지 클라의 연결을 Accept하고 세션 상태를 관리하는 Stateful 방식의 서버의 경우 클라와의 연결이 완료되면 연결이 끊어질 때까지 연결이 유지된다.  grpc에 대해 학습하며 클라와 연결을 유지하면서 자동으로 heartbeat를 체크하는 grpc를 보며 궁금한점이 생겼다. 클라가 아무런 패킷을 보내지 않고 연결만 유지하는 것만으로 서버에 큰 부담이 될까?  ✅ 결론부터 말하면❌ 부담 거의 없음.👉 이유는 둘 다 비동기 I/O 기반 구조이기 때문에,패킷이 오지 않는 한 스레드나 CPU를 점유하지 않기 때문  📦 실제 서버 자원 소비 요약CPU🟢 매우 낮음 (거의 ..
[네트워크/개념] gRPC(remote procedure call) 목차1. grpc란 무엇인가2. grpc의 장점3. rpc의 핵심 목표4. 예제 코드5. 마치며  🤔 grpc란 무엇인가회사에서 grpc라는 개념을 접하면서 흥미를 가지게 되었다. 그래서 따로 시간을 내서 공부한 내용을 정리해보려한다. gRPC는 Google에서 개발한 고성능, 오픈소스 원격 프로시저 호출(Remote Procedure Call, RPC) 프레임워크입니다. 간단히 말해서, 네트워크를 통해 다른 서버의 함수를 마치 로컬 함수처럼 호출할 수 있게 해주는 기술입니다.  gRPC에 대한 정의는 위와 같다. Remote Procedure Call. 말그대로 서버에 작성된 함수(프로시저)를 클라에서 선언한 함수마냥 쓸수 있게 해주는 기술이다. 물론 실제로 서버의 코드를 클라에서 쓸수 있다는 이야기..
[알게 된 것] 도커 사용 시 WSL, Hyper-V 필요한 이유 목차1. WSL, Hyper-V와 가상화 기술2. 도커 등 컨테이너 기술 사용시 설치하는 이유      WSL, Hyper-V와 가상화 기술 리눅스용 윈도우 하위 시스템(Windows Subsystem for Linux, WSL)은 윈도우 10과 윈도우 11에서 네이티브로 리눅스 실행 파일(ELF)을 실행하기 위한 호환성 계층이다. - 위키백과 정리하자면, 윈도우에서 리눅스 명령어 및 시스템 콜을 사용하기위한 환경을 제공하는 기술이다.    WSL과 VM은 대체 무슨 차이인가?  WSL은 기존의 VM방식과 달리 호스트OS에 가상의 OS를 띄우는 방식이 아니다. 그 차이를 정리하자면 아래와 같다.    VM은 리눅스 OS자체를 가상화 기술을 통해 호스트 OS와 별개의 Guest OS를 만들어 직접 리눅스 ..
[시스템 프로그래밍] 프로그램과 프로세스 목차1. 들어가며2. 프로그램과 프로세스3. 프로세스 메모리4. 스택프레임5. 마치며  들어가며 프로그램과 프로세스는 시스템 프로그래밍 과목에서 초반부에 다뤄지는 내용이며 면접 질문으로도 종종나오는 주제이다. 오늘은 프로그램과 프로세스, 그리고 프로세스 메모리와 스택프레임의 개념까지 더하여 프로그램의 전체적인 흐름을 정리해보려고 한다.  프로그램과 프로세스더보기 프로그램이란 무엇일까? 프로그램의 사전적 정의는 어떤 작업을 하기위해 해야할 일들을 순서대로 나열한 것이다. 단순히 파일 시스템에 존재하는 실행파일을 의미한다. ex) Window 기준 .exe 파일       그렇다면 프로세스란 무엇인가? 위키백과에서는 프로세스에 대해 다음과 같이 정의하였다.  프로세스(process)는 컴퓨터에서 연속적으로 ..