전체 글

카테고리 없음

2월 첫째주 ~ 4월 첫째주 회고

최근래 많이 나태해진 것 같아서 회고를 신청했건만 좀처럼 잘 진행이 안되었던 것 같다. 내가 이번 프리티어 동안 얻고자했던 것은 아래와 같았다.전자책 판매, 외주 정상화, 영어 원서 1권 끝까지 보기, 디자인패턴 익히고 실무에서 자유롭게 활용하기 전자책 판매는 아쉽게도 빛을 보지 못했다. 외주 정상화를 하고 감을 끌어올린 뒤에 전자책도 써보려고 했으나 쉽지 않았다. 전자책을 쓰려고 목차, 내용 상세 기획, 페르소나, 마케팅 등 정리를 해놨던 터라 아쉽다. 외주도 다시시작하고 며칠간 문의가 오고 몇건도 진행했지만, 끝내 계속할 순 없겠다고 생각했다.목표 달성에 실패한 사유는 정신적 스트레스, 다른 공부에 흥미가 생겼기 때문이다.회사 일과 부업을 동시에 하는게 내 리소스가 생각보다 많이 들어간다. 본업도 잘..

개발

PostgresDB에서 SQL작성시 고려할 점(계속 업데이트 됩니다!)

PostgresDB에서 SQL 작업하면서 삽질한 경험을 공유합니다🙂독자분들도 SQL작업하면서 의도대로 데이터가 나오지 않았다거나, 성능 개선, 기막힌 방법 등을 알아내신 게 있으시다면 댓글로 공유 부탁드립니다 !postgresql에서 count함수는 null값을 집계하지 않는다.- 따라서, count(*)를 사용하거나, count({not null이 보장된 필드})를 사용해야 한다.특정 enum(String)이 아닌 테이블을 조회할때는이런식으로 null값을 고려해야한다. null이 있는 테이블을 다룰때는 is null or is not null 을 생각하자. aTable.B ≠ ‘특정필드’ and aTable.B is nulljoin을 할때, on에 해당하는 조인 조건은 조인을 당하는 테이블만의 식이..

개발/Infra

SQS, standard-queues를 사용하여 개발한다면 어떤 것을 고려해야할까?

sqs에서 서버로 message가 올 순서를 보장하는 방법에 대해 설명하려고 한다. 먼저 문제의 상황을 하나 가정해보자. "글 작성"과 "글 수정" 요청이 sqs의 message로 오게되어서 처리하려고 한다.이 과정은 순차적으로 수행되어야 한다. 글 수정을 하려면 글 작성이 되지않으면 안되기 때문이다. fifo 구조의 queue라면 문제가 없지만, 순서를 보장하지 않는 standard라면 얘기가 달라진다.서버가 멈추거나 늦게 처리되는 등 모종의 이유로 인해 순서가 바뀌어서 올 수도 있으므로 동시성 처리를 해주어야한다. 이러한 기능을 구현하기 위해 고려해야할 것들을 생각해보면 다음 두가지이다. 1. 글 수정을 하기전 글이 DB에 존재하는지 확인을 해야한다. (존재하지 않는다면 의도적인 exception을 ..

Who am i ?

MBTI

MBTI  1. MBTI, 주객전도의 위험성 최근에 우연히 어떤 쇼츠를 보게되었는데 머리가 멍했다.나는 MBTI를 맹신하지 않는다고 생각했는데, 쇼츠를 보고나서 가만 생각해보니 MBTI에 나를 조금씩 끼워 맞춰 가고 있는 것 같아서 소름이 끼쳤다. MBTI가 자신을 단정짓게 만드는 만들 수도 있겠다 싶었다. 일례로 이번 여행에서의 경험을 말해보면, 딱 이런식으로 생각했다. 나는 INTP임.(MBTI 검사하면 ENFJ로 나오는데, mbti 근간인 칼 융의 성격 유형 모델을 참고해보니 암만봐도 나는 INTP다.) 1. xxx를 할까? 2. 너 I잖아, 이 행위가 내적으로 좋을 것 같아? 3-1. yes -> 가보자3-2. no -> 흠 일단 다른 것도 알아볼까 -> 1.다시 반복 나의 MBTI가 할 것 같은..

Who am i ?

짧은 회고

인턴과 정규직으로 전환, 그 안정감 속에 달콤한 안주함을 느끼고 있었다.  스타트업에 몸 담고 있으니 스타트업의 성장은 나의 성장과 비례할 것이라는 합리화가 무의식 속에 그리 열심히 살지 않아도 된다는 동기를 불어 넣는다. 여태 사실 조금 나를 놓고 있었다. 어떻게든 되겠지라는 막연함 속에 나의 주체성을 누군가에게 기대버린 것이다.하루의 치열과 충만은 이런게 아니었는데.  요즘엔 불평도 많다고 생각한다. 이건 뭐 때문에 안되고 왜 이건 이렇게 밖에 되지 않는지, 원망섞인 말들이 정제되지 못하고 입 밖으로 불쑥나오는 결례도 범했다. 공격적인 수동성, 마지 못해 이런 식으로 표현하지 못하다니 부끄럽다. 내가 어떻게 상황을 해석하고 적극적으로 대응하느냐에 따라 달라지는데, 내 마음대로 되지 않는 상황에서 어린..

개발

Coroutine과 Flow

Coroutine? 코루틴은 코틀린에서 제공하는 비동기 프로그래밍을 위한 도구 코루틴을 사용하면 비동기 코드를 동기 코드처럼 쉽게 작성할 수 있음 코루틴은 라이트웨이트 스레드라고 할 수 있으며, 기존 스레드에 비해 생성 비용이 낮고, 컨텍스트 스위칭 비용이 적어 성능이 우수하다. 왜냐하면 코루틴은 비동기 작업을 쉽게 시작하고, 결과를 기다리며, 중단할 수 있는 기능을 제공하기 때문. 따라서 코루틴으로 비동기 작업의 생명주기를 효과적으로 관리할 수 있다. Flow? Flow(Cold flow) 플로우는 코틀린에서 제공하는 리액티브 프로그래밍을 위한 도구. 플로우는 데이터 스트림을 표현하고, 이 스트림을 통해 데이터의 변화를 감지하고 반응할 수 있게 해줌 플로우는 cold stream이라는 특징을 가지고 있..

개발

GRPC

비즈니스 로직을 여러 서비스로 분리하는 과정에서 공통된 코드 공유를 어떻게 할 것인가? 라이브러리 자원관리 책임소재가 명확하지 않음 모든 사람이 코드에 대한 이해가 있어야한다. (추상화의 이점이 없음) 러닝타임이 길어진다 REST API 서버를 두고 호출하는 방식 통신 계층이 증가 → 지연 발생의 문제 클라이언트 코드가 각 서비스에서 독립적으로 작성된다 데이터의 버전관리가 명확하지 않다. ⇒ RPC 서버를 두고 클라이언트(stub)에서 메서드를 사용하면 위 문제들을 해결할 수 있다. gRPC? google에서 만든 RPC (메타, 트위터 등 여러 rpc가 있음) RPC? Remote Procedure call(원격 프로시저 호출)은 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를..

개발/Infra

ec2 ssh 접속하는 방법(feat. 터미널)

ec2 ssh 접속하는 방법(feat. 터미널) 1. .pem 파일을 $ ~/.ssh/폴더에 넣는다. $ cp {pem파일 위치}/dayone-back.pem ~/.ssh/dayone-back.pem 2. .ssh 폴더로 이동 후 .pem 파일 권한 변경 $ cd ~/.ssh $ chmod 400 dayone-back.pem 3. ssh 접속 스크립트 작성 $ vi config 다음과 같이 입력후 저장(:wq) 4. aws ec2로 접속 $ ssh dayone 접속 확인!

​V​
JUST_DECIDE