목록분류 전체보기 (181)
개발자의 오르막
회고에 대해 작성하는 것은 어색하다. 오늘까지만 하더라도 sonarqube , 동시성 등 어떤 주제로 글을 써야하지 고민을 하다, 오늘이 마지막 글또 제출임을 알게되어 회고록을 뒤늦게 작성하게 되었다. 2023.02.08 일에 글또 8기 다짐글 (https://catchdream.tistory.com/247) 을 쓴지가 벌써 6개월이 지나다니.. 시간이 정말 빠르게 흐르는구나를 느끼기도 하면서 나 자신에 대해 반성하게 되는 순간들도 많았다. 글또를 시작하기 전, 나는 어떤 마음이었을까? 8기 글또의 시작과 작성한 글들 나의 글또 다짐글은 정말 그게 최선이었을까? 로 시작한다. 간단한 API 기능 구현 하나라도, 관성적으로 개발을 진행하지는 않았는지, 내가 선택한 기술이 정말 최선의 선택이었는지 그에 대한..
이번 문제의 키워드는 Array, Slice, Make 이다. 해당 문제에서 하나의 배열을 2차원으로 만드는 방법으로는 슬라이스의 특징인 배열의 부분을 추출하는 기능을 활용하는 문제였습니다. 정답을 반환하는 answer 2차원 배열을 만들고, param으로 주어지는 num_list 1차원 배열을 특정 길이만큼 잘라서 할당하는 풀이입니다. 그러면 위의 세 키워드 Array, Slice, Make 에 대해 개념을 정리해보겠습니다. Array Golang 에서 배열은 동일한 데이터 타입의 고정 크기 요소들의 순서화된 집합이다. 배열은 대괄호 [] 안에 크기를 지정하여 선언된다. var myArray [5] int myArray := [5]int{1,2,3,4,5} myArray := […]int{6,7,8,9..
Overview 대용량 채팅은 어떤 것을 의미할까요? 우리가 흔히 쓰는 카카오톡, 라인, 당근과 같이 개인과 개인 사이의 채팅이 아닌, 특정 목적을 위해 모인 불특정 다수가 함께 채팅하는 것을 의미합니다. 유튜브, OTT 의 인기와 더불어 유튜브 Live, 트위치, 라인의 Live, 아프리카 TV 와 같이 실시간 라이브방송으로 고객들과 소통하는 쌍방향 커뮤니케이션 서비스가 흥행하고 있습니다. 실시간 라이브 방송으로 인한 대규모 채팅, 수천 또는 수백만 명의 동시접속자가 이루어질 수 있는 환경 이기도 합니다. 때문에 우리는 흔히 C10K 문제라고 하는 1만개의 클라이언트를 동시에 처리할 수 있는 네트워크 I/O 모델 설계 방법 에 대해 고민을 안 할 수 가 없습니다. 특히 라이브 방송을 쇼핑몰로 진행할 때..
트랜스 코딩이란 무엇일까? 위의 그림과 같이 현대에서는 하나의 영상이 다양한 기기에서 재생됩니다. Computer, TV, Tablet 등 다양한 디스플레이에서 재생되는 것은 물론, 하나의 디스플레이에서도 우리는 여러 해상도와 비트레이트를 제공합니다. 💡 해상도 (Resolution) : 1인치 안에 표현되는 화소나 점의 개수 비트레이트 (Bitrate) : 초당 처리하는 비트, 영상 재생 시 비트레이트가 높을 수록 하이 퀄리티의 영상을 볼 수 있습니다. 우리가 다양한 디바이스에서 원하는 해상도, 비트레이트, 화면비율 등으로 영상을 시청할 수 있는 것은 동영상이 사전에 다양한 버전으로 변환되어 제공되기 때문입니다. 원본 동영상 파일을 다른 포맷의 동영상 파일로 변환하는 과정을 트랜스코딩이라 합니다. 그러..
💡 정말 그게 최선이었을까? 우리는 흔히 많이 접하는 것을 소흘히 하는 경우가 있다. 처음 개발을 접하고, 팀으로 프로젝트를 진행할 때 복잡해보이는 도메인을 선호하기도 한다. 게시판에 대한 CRUD 기능 구현, 회원가입, 로그인 기능 구현 등 이미 한 번 해봤던 것들에 대해 흥미를 잃어버리기도 한다. 나의 총 경력 중 2년 간은 프레임워크를 사용하는 것에 집중했던 것 같다. 소위 인기 있는 기술을 사용하기 위해 프로젝트를 고르려고도 했고, 여러 인강이나 새로운 기술을 들고오면 적용되는 것 자체에서 기쁨을 느꼈다. 복잡한 도메인의 요구사항을 파악해서 안정적으로 돌아가는 API 를 하나하나 개발할 때면 왠지 모를 자신감도 찼었다. 그러던 올해, 우연찮게 얻은 면접 기회를 얻게 되어, 다른 회사의 면접을 보게..
스크립트 파일 #!/bin/bash CON_ID=`docker ps | grep project-name | awk '{print$1}'` docker cp ./test.sh $CON_ID:/home/project/test.sh docker exec -it -u 0 ${CON_ID} /bin/sh attach_apig.sh 는 Docker 컨테이너에 접속하는 실행파일이다. 여기서 awk 명령어가 생소하기 때문에 간단하게 정리한다. AWK 개념 AWK 는 텍스트가 저장되어 있는 파일을 원하는대로 필터링하거나 추가해주거나 기타 가공을 통해서 나온 결과를 행과 열로 출력해주는 프로그램입니다. SQL 과 같이 특정 텍스트로 읽은 문자를 조합해 행과 열로 나타낼 수 있습니다. AWK 에서는 레코드가 $0 , $1…..