목록전체 글 (181)
개발자의 오르막
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cq41Dq/btsnHSSu1ni/ZtKOzRtJNGw20Hosrmf9N0/img.png)
회고에 대해 작성하는 것은 어색하다. 오늘까지만 하더라도 sonarqube , 동시성 등 어떤 주제로 글을 써야하지 고민을 하다, 오늘이 마지막 글또 제출임을 알게되어 회고록을 뒤늦게 작성하게 되었다. 2023.02.08 일에 글또 8기 다짐글 (https://catchdream.tistory.com/247) 을 쓴지가 벌써 6개월이 지나다니.. 시간이 정말 빠르게 흐르는구나를 느끼기도 하면서 나 자신에 대해 반성하게 되는 순간들도 많았다. 글또를 시작하기 전, 나는 어떤 마음이었을까? 8기 글또의 시작과 작성한 글들 나의 글또 다짐글은 정말 그게 최선이었을까? 로 시작한다. 간단한 API 기능 구현 하나라도, 관성적으로 개발을 진행하지는 않았는지, 내가 선택한 기술이 정말 최선의 선택이었는지 그에 대한..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8aCbB/btsdZMPmfXS/SaXORulGItYDoknlXQM7j1/img.png)
이번 문제의 키워드는 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/J36nu/btr3dT5eEJH/atSnlNkx0R0SHktY6poo11/img.png)
Overview 대용량 채팅은 어떤 것을 의미할까요? 우리가 흔히 쓰는 카카오톡, 라인, 당근과 같이 개인과 개인 사이의 채팅이 아닌, 특정 목적을 위해 모인 불특정 다수가 함께 채팅하는 것을 의미합니다. 유튜브, OTT 의 인기와 더불어 유튜브 Live, 트위치, 라인의 Live, 아프리카 TV 와 같이 실시간 라이브방송으로 고객들과 소통하는 쌍방향 커뮤니케이션 서비스가 흥행하고 있습니다. 실시간 라이브 방송으로 인한 대규모 채팅, 수천 또는 수백만 명의 동시접속자가 이루어질 수 있는 환경 이기도 합니다. 때문에 우리는 흔히 C10K 문제라고 하는 1만개의 클라이언트를 동시에 처리할 수 있는 네트워크 I/O 모델 설계 방법 에 대해 고민을 안 할 수 가 없습니다. 특히 라이브 방송을 쇼핑몰로 진행할 때..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AtcR2/btrZV75JUXk/NVbMvXweOKEsGiSqiw0JsK/img.png)
트랜스 코딩이란 무엇일까? 위의 그림과 같이 현대에서는 하나의 영상이 다양한 기기에서 재생됩니다. Computer, TV, Tablet 등 다양한 디스플레이에서 재생되는 것은 물론, 하나의 디스플레이에서도 우리는 여러 해상도와 비트레이트를 제공합니다. 💡 해상도 (Resolution) : 1인치 안에 표현되는 화소나 점의 개수 비트레이트 (Bitrate) : 초당 처리하는 비트, 영상 재생 시 비트레이트가 높을 수록 하이 퀄리티의 영상을 볼 수 있습니다. 우리가 다양한 디바이스에서 원하는 해상도, 비트레이트, 화면비율 등으로 영상을 시청할 수 있는 것은 동영상이 사전에 다양한 버전으로 변환되어 제공되기 때문입니다. 원본 동영상 파일을 다른 포맷의 동영상 파일로 변환하는 과정을 트랜스코딩이라 합니다. 그러..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/L0dCH/btrYtSo94Ho/O5KJRJu5kPZwvQ8WERjGEK/img.png)
💡 정말 그게 최선이었을까? 우리는 흔히 많이 접하는 것을 소흘히 하는 경우가 있다. 처음 개발을 접하고, 팀으로 프로젝트를 진행할 때 복잡해보이는 도메인을 선호하기도 한다. 게시판에 대한 CRUD 기능 구현, 회원가입, 로그인 기능 구현 등 이미 한 번 해봤던 것들에 대해 흥미를 잃어버리기도 한다. 나의 총 경력 중 2년 간은 프레임워크를 사용하는 것에 집중했던 것 같다. 소위 인기 있는 기술을 사용하기 위해 프로젝트를 고르려고도 했고, 여러 인강이나 새로운 기술을 들고오면 적용되는 것 자체에서 기쁨을 느꼈다. 복잡한 도메인의 요구사항을 파악해서 안정적으로 돌아가는 API 를 하나하나 개발할 때면 왠지 모를 자신감도 찼었다. 그러던 올해, 우연찮게 얻은 면접 기회를 얻게 되어, 다른 회사의 면접을 보게..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cXGzs6/btrU55SCgFy/HNQxARPRdTolzYFOuriXr1/img.png)
스크립트 파일 #!/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…..