profile
백앤드 개발 공부중

spacesheep 배포 기록

1. ec2 초기 세팅 가상환경 생성 2. daphne, gunicorn 설치 및 서비스 등록 3. nginx 서비스 등록 및 ssl 발급 4. nginx로 daphne(ws), gunicorn(http) 연동 5. 장고 캐시로 elasticache 연결 기타 에

2022년 2월 28일
·
0개의 댓글
post-thumbnail

non-blocking batch-writing using Celery (는FAIL)

길고 긴 캐시 구현을 끝내고 드디어 캐시 데이터를 dynamoDB 에 write 할 worker 를 생성해야 한다. celery를 이용해 구현하려고 보니, 구현 자체는 까다롭지 않은데 나 같은 윈도우 환경에서 gevent 가 필요하다길래 정리해보려고 한다.

2022년 2월 8일
·
0개의 댓글

동기/비동기, 단일/멀티스레드 정리

비동기 : 단일 스레드/ 멀티 스레드 다 가능. 과제가 끝날 때 까지 기다리지 않고 실행하는 방법멀티 스레드에서는 스레드간 충돌이 없도록 추가 비용을 지불해야 한다. (개발자의 영역) \- 자바는 단일 프로세스를 제공. 멀티 스레드 동기화를 위해 임계영역(lock)을

2022년 2월 6일
·
0개의 댓글
post-thumbnail

저장되는 미디어 용량 줄이기, convert image/gif to webp (javascript)

gif, png, jpeg 을 전부 지원하는 이미지파일 포멧이다.기존보다 용량을 30% 가량 줄여준다고 한다.파일을 인자로 받아 canvas 에 쓰고 데이터 타입과 사이즈를 바꾸는 함수를 작성했다.출력: blob데이타효과는 대단했다..전후628KB --> 31 KB 로

2022년 2월 5일
·
0개의 댓글

URL encoding/decoding

사용자 닉네임을 한글+이모지 조합으로 만드는 사람이 많다.자신의 닉네임으로 채널에 접속할 수 있는 구조인데, url에 그대로 문자열을 집어넣으면 문자가 깨져서 브라우저에 따라 달리 보인다. 그래서 1차적으로 'utf-8' 인코딩을 해서 한글을 유니코드로 변환해준 다음,

2022년 1월 22일
·
0개의 댓글

DB에 비밀번호 저장하기

오토마타 수업시간에 배운 내용 중 교수님이 제일 중요하다고 강조하셨던 것이 암호화는 쉽지만 복호화는 어렵다는 것이다. 그래서 암호화된 데이터를 얻으려면 기록하고 대조해서(rainbow attack) 찾아보는 수 밖에 없다.어제 내가 저장한 db 테이블을 쭉 살펴보다가

2022년 1월 22일
·
0개의 댓글

Django로 만든 채팅앱에서의 cache 설계

db에 읽고 쓰는 데는 비용이 많이 든다. 해서 쿼리 결과값을 수정되기 전까지는 캐싱해놓고 요청 시 반환하는 방법을 사용하려고 한다. 더 빠르고, 비용도 절감된다. 아래 블로그 글을 참고했다.레디스로 쿼리 캐싱하는 법https://redis.com/blog/q

2022년 1월 17일
·
0개의 댓글

django 로그인 커스텀 구현

db를 구현하면서 고민했던 점이, 로컬에서 테스트하듯 한 번 메시지를 주고받을 때 마다 쓰기 작업을 하면 내야 하는 돈도 비싸진다는 것이다. 그리고 실제 비즈니스에서도 그렇게 적용하지 않는 듯 하고.그래서 적정량(?)을 레디스 캐시서버에 케싱해 두었다가 chunk로 w

2022년 1월 12일
·
0개의 댓글

(4) 뿌슝 만들기

RDBMS 설계 시 > 요약 : 대용량의 데이터를 포함한 테이블일수록 I/O 연산이 커지기 때문에 적당히 쪼개서 join을 하는 것이 연산 횟수가 더 적음을 알 수 있다. 불필요한 참조로 자주 쓰이는 데이터가 메모리에서 내려가는 것을 막기도 한다. 출처 : https:

2022년 1월 12일
·
0개의 댓글

근황..

최근 아주 핫했던(?) 산타파이브 분들의 사건을 보고 들으면서 내 프로젝트도 공개하려면 보안적인 부분을 강화하는 수 밖에 없다는 생각이 들었다.. (각박한 세상..그래서.. 방화벽(https://aws.amazon.com/ko/waf/)이나 클라우드 플레어,

2021년 12월 27일
·
0개의 댓글

용량 큰 이미지, gif 파일 빠르게 전송

여러가지 방향으로 고민을 해봤는데, 검색해보니 웹소켓으로 파일을 보낼 때 에플리케이션 단에서 패킷스위칭을 구현해야 하는 거대 공사를 할 바에는 클라이언트에서 직접 디비에 write & 서버에게 완료 메시지를 보내면 서버가 그것을 다시 read 하는 방법을 사용하기로 결

2021년 12월 17일
·
0개의 댓글

(3) 뿌슝 배포

인메모리 디비가 빠르고 읽기에 적합레디스는 레플리케이션을 지원해서 오류 복구를 따로 구현 안해두 정보가 보존된다!멜록으로 메모리 할당 해서 메모리 단편화가 생길 수 있고 응답속도의 지연을 유발한다.메모리 단편화란 \- 내부/ 외부 단편화논리메모리(페이지) <->

2021년 12월 3일
·
0개의 댓글

(2) 채팅 기능 구현하기

채팅앱 로그인, 회원가입, 비동기식 채팅창 구현이미지 파일 크기 조정채팅으로 이미지.까.진. 보내지는 것 확인움짤 정보 손실보내지다가 안보내지다가 함이미지 채팅 개 느려짐

2021년 12월 3일
·
0개의 댓글

(1) 뿌슝 만들기

Q1 계기 푸슝이라는 서비스가 덕질 친구들과의 소통에 지대한 역할을 맡고 있는데, 친구들이 폭주 할 때마다(제일 재밌는 순간인데!) 이게 자꾸만 터져서 내가 만들어 보아야 겠다고 생각했다. 그냥 채팅앱인데, 접속자가 많다는 가정 하나만 추가해도 고려할 것이 엄청나게

2021년 11월 27일
·
0개의 댓글

spring IoC

서블릿, ejb의 등장. 외부의 컨테이너(ioc container)가 서블릿을 관리. --> 제어의 역전BeanFactoryIoC 컨테이너의 기능을 정의. 빈의 생성 및 의존성, 생명주기 관리.ApplicationContextbeanfactory 인터페이스를 상속받음.

2021년 7월 3일
·
0개의 댓글
post-thumbnail

자바 런타임 메모리 구조와 가비지 컬랙터

method areaheap areastack areaPC registernative nethod stack클래스 멤버 변수 이름, 데이터타입 등 필드 정보, 상수 Pool, static var, final class valuenew 키워드/realloc() 로 생성된

2021년 6월 4일
·
0개의 댓글

spark기본(1)

poso : 기존에 자바 어플리케이션을 주도하는 기술에서 일반자바오브젝트를 사용하게 해주는 스프링이 쓰던 (프로그래밍이 좀 더 자유로워진) 방식모듈, 디자인패턴 적용 가능.인터페이스 패턴 강요 x.spark-shell 만으로 업무를 하기는 힘들다 ../bin/spark

2021년 5월 18일
·
0개의 댓글
post-thumbnail

pokapoka 개발일지 : 로그인 구현(1)

2021-04-11 flutter로 시작페이지 및 로그인 구현하기 - 완성

2021년 4월 11일
·
0개의 댓글

시작!

열쩡 열쩡 열쩡!!

2021년 3월 17일
·
0개의 댓글