분류 전체보기 555

4년간 대학교를 다니며... 대학생활 회고

이제 대학교를 졸업할 때가 다가왔습니다. 정말 많은 일이 있었던 대학 생활 4년이었습니다. 학교 생활 자체는 그렇게까지 재밌진 않았지만 개발자로서 역량을 키우는 시간이었음은 확실합니다. 이제 이력서를 넣고 자기소개서를 쓰면서 사회인으로서 한발짝 앞으로 가고있는 제가 1년뒤에 이 회고를 다시 볼 것을 기대하며 적어보도록 하겠습니다. 대학교 안녕... 1학년땐 놀자 여러분이 대학교를 지금 들어갔다면 1학년은 무조건 놀아야합니다. 난 개발 공부가 재밌는데요? = 그럼 개발 공부 하세요. 그런게 아니라면 1학년은 제발 놀아야합니다. 진짜 밑도끝도없이 뒤가없이 놀아야합니다. 노는게 지겨워!! 할때까지 미친놈처럼 놀아야합니다. MT도 가보고 술도 꽐라될때까지 먹어보고 게임도 새벽 내내 하고 대학교 강의땐 자고 게임..

기타/회고 2024.01.18

Redis와 Memcached 동시성 문제

이번 포스팅에선 Redis와 Memcached의 동시성 문제에 대해서 궁금증이 생겨서 공유하고자 글을 쓰게 되었습니다. 구글링하다 Redis-Semaphore로 Mutex 해결하기 라는 제목의 포스팅을 발견했습니다. 처음엔 보고 "으잉? 이게 무슨말이야?" 하게 됐는데 Mutex는 동시성 문제를 해결하는 방법론인데 Mutex를 해결..? 아마 포스팅 쓰신 글쓴이분께서 Mutex의 뜻을 착각하고 계신게 아닌가 싶었습니다. 그래서 그 부분은 넘어가도록 하고 Redis-Semaphore라는게 걸려서 이번에도 역시 GPT로 공부해봤습니다. Redis와 Memcached의 차이 우선 이 둘의 차이부터 짚고 넘어가도록 하겠습니다. Redis 싱글스레드이다. 여러가지 자료형을 제공한다. String, Hash, Li..

면접 준비 (흐름 제어와 혼잡 제어)

Q. TCP의 흐름 제어와 혼잡 제어에 대해서 설명해주세요. A. 흐름 제어는 송신자와 수신자 사이에서 벌어지는 현상이고 송신자가 보내는 패킷의 크기가 수신자의 수용 용량보다 클 경우 수신자의 버퍼를 동적으로 늘리기 위해 잠시 시간을 벌어주는 용도로 사용됩니다. 이때 sliding window 방식으로 수신자가 ACK 패킷을 전달할 때마다 일정량의 데이터를 보내주는 것이 특징입니다. 혼잡 제어는 송신자와 수신자와의 통신뿐만 아니라 더 넓은 범위에서 일어나는 현상으로서 네트워크 트래픽이 너무 많아지는 경우 패킷이 로스되는 것을 막기 위해 트래픽 레벨의 모니터링을 통해 혼잡을 막기위해 window 크기와 전송 속도를 제어하는 역할을 합니다. Q. window 크기가 뭔가요? A. 단위 시간당 전송되는 패킷의..

네트워크 흐름제어와 혼잡제어 (Flow Control, Congestion Control)

우리가 흔히 말하는 네트워크 통신은 TCP 3way handshaking에 의해 일어납니다. 그리고 TCP에 대해 조금 공부해보신 분들은 UDP와의 차이도 말할 수 있죠. UDP와 다르게 TCP는 전이중 방식과 점대점 방식 그리고 흐름제어와 혼잡제어를 통해 높은 신뢰성을 줄 수 있다고 말이죠. 잠시 설명하자면 전이중 방식은 전송이 양방향으로 이어진다는 뜻이고 점대점 방식은 각 연결점이 종단점을 가진다는 것입니다. 하지만 흐름제어와 혼잡제어는 그냥 외우기만해서 잘 모르더라구요. 이 부분에 대해서 본격적으로 공부해봤습니다. 흐름 제어 흐름 제어는 송신자와 수신자 사이에 버퍼(데이터를 받을 수 있는 용량)를 관리하기 위해 나온 방법론입니다. 만약 송신자가 수신자에게 엄청나게 큰 데이터를 넘겨준다고 생각해봅시다..

데이터베이스 프로시저 (Database Procedure)

이번 포스팅에선 데이터베이스 프로시저에 대해서 알아보도록 하겠습니다. 면접 봤는데 해당 내용이 나왔고 대답을 못했습니다. 다음 면접을 위해 정리해두는 느낌으로 포스팅 해보도록 하겠습니다. 데이터베이스 프로시저 프로시저란 무엇일까요? 간단하게 쿼리 묶음이라고 생각하시면 됩니다. 만약 자주 사용하는 SQL문이 있다면 그것들을 정리해둔 것이죠. 한번 간단한 예시를 상정해보고 코드 예제까지 보여드리겠습니다. "books"라는 테이블에 새로운 책을 입력할 것입니다. "books"테이블에 특정 책의 수량을 변경할 것입니다. 데이터가 바뀐 책의 상세 데이터를 요청해보겠습니다. DELIMITER // CREATE PROCEDURE ManageBook(IN bookTitle VARCHAR(255), IN bookAuth..

쿠버네티스 기초 (키워드, 아키텍처, 흐름)

개인적으로 쿠버네티스에 관심이 있어서 표면적인 지식을 학습하려고합니다. 쿠버네티스는 구글에서 개발한 오픈소스 컨테이너 오케스트레이션 도구이며 구글에서 가이드라인을 주기로는 행성급 애플리케이션(약 10억개의 컨테이너)에 어울리는 기술이라고 합니다. 때문에, 웬만한 기업에선 쿠버네티스를 사용하는 것이 오히려 유지보수적인 측면에서 독이 될 정도로 사용하기 까다로운 기술 중 하나입니다. 신입인 저는 공부하는 것이 오버스펙이라고 주변에서 뜯어말리지만 공부는 그냥 자기가 하고싶은거 하는게 최고이지 않겠습니까 공부해서 손해보는 공부는 없으니까요. 그래서 사람들 말 무시하고 제가 하고싶은 공부 하기로 했습니다. 쿠버네티스란? 위의 사진은 개발 단계를 표현한 그림입니다. 맨 처음 전통적인 개발 방식은 하드웨어에 OS를 ..

DevOps/Kubernetes 2024.01.08

AWS Certified Developer - Associate 자격증 취득 회고

이 자격증을 따느라 블로그 포스팅이 조금 뜸해졌습니다. 이번 포스팅에선 다시 시작한다는 마음으로 회고를 작성해보도록 하겠습니다. AWS 자격증 AWS의 자격증은 위와같이 나누어져있습니다. 크게는 3단계로 나누어져있고 분야는 아키텍트, 운영, 개발자, 네트워킹, 빅데이터, 보안, 머신러닝, AI로 이루어져있습니다 ( 맨 오른쪽 아래 Alexa는 아마존의 AI입니다. ). 저는 개발자 트리를 타야할 것 같아서 Developer를 땄는데 아키텍트쪽이랑 운영쪽은 어떤 것을 시험 보는지 모르지만 Developer쪽은 다양한 것을 시험봅니다. 배포 (22%), 보안 (26%), AWS 서비스 (30%), 리팩터링 (10%), 모니터링 및 문제해결 (12%) 도합 100퍼센트 비율로 시험이 출제됩니다. 계기 이번 연..

기타/회고 2023.12.03

Elastic Load Balancer (ELB) : (2)

앞선 포스팅과 이어지는 내용입니다. https://coding-review.tistory.com/460 Elastic Load Balancer (ELB) : (1) 이번 포스팅에선 AWS의 핵심 시스템 중 하나인 Elastic Load Balancer 줄여서 ELB에 대해서 알아보도록 하겠습니다. ELB는 개발자에게 그리고 AWS에게도 빠질 수 없는 중요한 시스템인데요. 만약 개발자에 coding-review.tistory.com 우리는 인스턴스를 생성했고 로드밸런서를 생성했으며 타겟그룹까지 생성했고 로드밸런서에 타겟그룹을 라우팅하는 작업까지 끝났습니다. 근데 이러고 보니까 조금 문제가 있습니다. 바로 사용자가 로드밸런서에 접근할 때마다 새로운 애플리케이션으로 연결해주는데 로그인을 했는데도 로그인이 풀려..

DevOps/AWS 2023.10.13

Elastic Load Balancer (ELB) : (1)

이번 포스팅에선 AWS의 핵심 시스템 중 하나인 Elastic Load Balancer 줄여서 ELB에 대해서 알아보도록 하겠습니다. ELB는 개발자에게 그리고 AWS에게도 빠질 수 없는 중요한 시스템인데요. 만약 개발자에게 "AWS에서 제공하는 로드밸런서의 기능을 직접 구현해라"라고 하면 구현하는 것도 만만치 않은데다 유지보수 하는것도 쉽지 않을 것입니다. 또한, 기껏 직접 로드밸런서를 만들었다고 하더라도 다른 시스템과 연동하는건 또 다른 이야기이죠. 이 로드밸런서를 각각의 애플리케이션과 연결하고 관리하는건 개발자로 하여금 막대한 기술부채를 안겨다주죠. AWS도 ELB라는 구현하기 쉽고 유지보수하기 쉬운 시스템을 내면서 다양한 AWS의 시스템과 ELB를 연동시킬 수 있게 함으로써 더욱 다양한 AWS의 ..

DevOps/AWS 2023.10.13

EC2 인스턴스 스토리지 (EBS, EFS)

이번 포스팅에선 EC2의 저장공간에 대해서 알아보도록 하겠습니다. 이번 포스팅은 실습보다는 이론 위주로 공부한 것을 정리해보도록 하겠습니다 (비용이 무서워서...) AWS의 핵심 기능 중 하나인 EC2의 저장공간 역할을 하는 인스턴스 스토리지는 데스크탑으로 치면 하드디스크에 해당합니다. 하지만 데스크탑과 다른 점은 클라우드 상에서 벌어지는 일인만큼 하드디스크에 접근하기 위해서는 네트워크 I/O가 있어야 한다는 점입니다. 그래서 실제 데스크탑에 물리적으로 연결되어 있는 하드디스크 (HDD, SSD, NVMe) 보다는 속도가 떨어집니다. 하지만 유연하게 저장공간을 설정할 수도 있고 성능도 원한다면 얼마든지 커스텀할 수 있습니다. 이제 본격적으로 EC2 인스턴스 스토리지에 대해서 알아보도록 하죠! EC2란? ..

DevOps/AWS 2023.10.10