전체 글

5%라도 남기자
Go

[Go] Go로 로그 패키지 만들기 (1)

들어가기에 앞서 이 글은 "Go언어를 활용한 분산 서비스 개발"이라는 책을 보고 정리한 내용입니다 먼저 로그 패키지를 만들기 전에 용어를 머리에 집어넣고 가야 편합니다 레코드(Record) : 로그에 정리할 데이터 저장 파일(Store): 레코드를 저장하는 파일 인덱스 파일(Index): 인덱스를 저장하는 파일 세그먼트(Segnment): 저장 파일과 인덱스 파일을 묶어서 말하는 추상적 개념 로그(Log): 모든 세그먼트를 묶어서 말하는 추상적 개념 1. 스토어(Store) 만들기 로그 패키지를 위한 LetsGo/WriteALogPackage/internal/log/stroe.go package log import ( "bufio" "encoding/binary" "os" "sync" ) var ( en..

CS/네트워크

[네트워크] 로그란 무엇인가

들어가기에 앞서 웹을 공부하면서 또는 프레임워크를 쓰면서 Log란 것을 듣기도하고 보기도하며 쓰기도 해보았다 하지만 정작 그렇게 중요하다는 생각까지는 하지 않았다 그냥 오류가 뜨면 Log를 뜨게하고 대충은 안다고 생각했기 때문이다 그래서 오늘은 분산 서비스를 구축하고자 하는 목적을 이루고자 로그란 무엇인에 대하여 짚고 넘어갈려고 한다 (본 글은 https://brunch.co.kr/@sangjinkang/22을 보고 정리한 내용입니다) 로그란 무엇인가? 쉽게 정리하자면 로그란 IT인프라에서 발생하는 모든 상황의 데이터이다 그렇다면 로그는 어떻게 생겼을까 로그는 정해진 규칙에 따라 Key-Value 형태 혹은 정해진 Key 순서에 맞게 Value값으로 보통 표현된다 ex) 로그의 찍힌 값의 순서 타임스탬..

CS/네트워크

[네트워크] Restful하게? Rest란 무엇일까?

들어가기에 앞서 protobuf에 대해 공부하면서 기존 백에서 작성하던Rest API(Get, Post) 대신 proto Request Proto Response를 쓰는 것을 보았다 근데 정작 나는 Rest란 무엇인가에 대해서도 잘 알지 못하는 거 같아 Rest에 대해 정리하기로 했다 해당 글은 밑에 블로그를 보고 작성한 글입니다 https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html REST란 “Representational State Transfer” 의 약자 - 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. - 자원: 해당 소프트웨어가 관리하는 모든 것( 문서, 그림, 데이터) 상태(정보) 전..

CS/네트워크

[네트워크] Protobuf란 무엇인가?

오늘은 gRPC에 대해 공부하던중 Protobuf(프로토컬 버퍼)란 말이 많이 등장하는데 얕게나마 이해를 하고 넘어가고 싶어서 정리하게 되었습니다 Protobuf란 Protocol Buffers는 Google에서 개발한 데이터 직렬화 방식 줄여서 protobuf, 더 줄여서 pb라고도 불립니다 protobuf -> pb는 다른 IDL(XML, JSON...)에 비해 더 작은 용량(이진 형식)으로 데이터를 저장할 수 있기 때문에 네트워크 연결을 통해 더 빠르게 전송할 수 있습니다 인터페이스 정의 언어 (Interface Description Language 또는 Interface Definition Language, IDL) 는 소프트웨어 컴포넌트의 인터페이스 를 묘사하기 위한 명세 언어 이다. IDL은 ..

Go

[Go] golang slice안에 특징

https://ultimate-go-korean.github.io/translation/#go-%EC%96%B8%EC%96%B4%EC%9D%98-%EC%97%AD%ED%95%99%EC%A0%81-%EA%B3%A0%EC%B0%B0language-mechanics The Ultimate Go Study Guide ultimate-go-korean.github.io 이 글은 위 전자책을 보고 정리한 내용입니다 Go에서 Slice를 생성하면 3개의 워드(word) 데이터 구조가 만들어집니다 1번 워드는 배열의 위치를 가르키며 2번 워드는 슬라이스의 길이를 3번 워드는 슬라이스의 총 용량을 보통 배열(Array)에서는 [10]이라면 타입에 따라 4byte(int)*10 = 40byte를 용량, 길이는 10이라고 ..

Go

[Go] Go루틴이란 무엇인가?

들어가기에 앞서 Go를 알아보면서 병행성이 있는 건 알고 있었지만 이렇게 코드로 겪어보니 운영체제 공부할 때가 떠올라 신기하기도 하고 재밌기도 했다 병행성과 병렬성의 차이를 알고 가야될 필요가 있다 (헷갈림..) 병렬성과 병행성의 차이 병렬성은, 실제로 여러 작업을 동시에 수행하는 것을 의미한다. 병행성은, 마치 여러 일을 동시에 하듯이 수행하는 것을 의미한다. Go 루틴이란 Go 루틴의 특징은 OS가 아닌 프로그램에서의 Time _ Sharing 처리이다 프로세스(Process)를 쓰던 스레드(Thread)를 쓰던 오버헤드가 생길 수 밖에 없다 왜냐면 우리가 컴퓨터를 쓸 때 많은 동작을 컴퓨터에게 시키기 때문이다 하나의 명령만 컴퓨터 주는 게 아니라 이것 저것 시키기 때문에 컴퓨터 안에서는 컨텍스트 스..

Flutter

[Flutter] Infinite_scroll_pagination package를 이용하여 무한스크롤 구현하기

들어가기 앞서 Flutter로 무한 스크롤 구현을 보던중 GetX를 사용하는 법 등 다양하게 있었는데 Infinite_scroll_pagination 패키지를 활용한 레퍼런스는 많은데 번역 된 레퍼런스가 잘 없다보니 좀 많이 해맸다 그래서 내가 한 번 정리해보기로 했다 만들어볼 것 먼저 나는 pubspec.yaml에 밑에 처럼 설정해줬다 flutter: sdk: flutter flutter_secure_storage: ^7.0.1//로컬 스토리지 활용 http: "0.13.5" //백엔드 API 연동! infinite_scroll_pagination: ^3.2.0//무한 스크롤 패키지 그 다음 할 일은 새로운 Dart파일을 하나 만들어 준다 일단 먼저 어떤 데이터들을 불러올지 정하자! { "content..

스프링

[Spring] Slice를 이용하여 무한스크롤 구현하기

가장 중요한 것 Pagination이란 무엇인가 우리가 구현하기에 앞서 먼저 알고가야 하는 용어입니다 꼭 보세요!! 아니면 나중에 헷갈려요 만약 DB에 수만 수억가지 데이터들이 있는데 그 데이터들을 한 번에 불러와서 본다면 당연히 좋겠죠? 하지만 그렇다면 부하가 생길수 밖에 없습니다 무수히 많은 쿼리들 때문이죠 그래서 우리는 많은 어플에서 보듯이 무한스크롤등을 구현하는 곳이 많습니다 예를들어 오른쪽에 인스타그램 처럼요! 그렇다면 각각의 내용들을 어떻게 효율적으로 불러올까요? 먼저 많은 방식들이 있지만 저는 오늘 Slice이용한 무한스크롤을 다룰예정입니다 1. No offset 사용하기 No offset이란 말 그대로 페이지 번호가 없는 방식을 이야기합니다 기존에는 페이지번호(offset)와 페이지 사이즈..

Sleeg
5% 남기기