일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- django
- django #django 5.0 #django 5.0 요약
- 개발자에세이
- haystack
- 비즈니스
- 업비트 웹소켓
- 비즈니스적 관점에서 생각하는 개발자
- 알고리즘
- 개발회고
- 개발자와 비즈니스 관계
- ssl.key
- add colume
- django slack
- redis lock
- 웹소켓 api
- 서버 개발
- 백엔드 개발
- 슬랙봇
- 비즈니스적 관점에서 생각하는 개발자 #개발자 마인드
- 개발자와 비즈니스
- 정렬
- 개발자의 마인드
- MySQL
- 숲을 바라보는 개발자
- slack bot
- AWS Aurora
- private.pem
- public.pem
- django slack bot
- django 슬랙봇
- Today
- Total
Info-Tech

Race Condition이란?Race Condition(경쟁 상태)은 둘 이상의 프로세스나 스레드가 동시에 공통 자원에 접근할 때, 실행 순서에 따라 결과가 달라지는 상황입니다.쉽게 말해, 누가 먼저 처리하느냐의 '경쟁' 상태에서 발생하는 버그로, 특히 데이터 무결성이 중요한 서비스에서 치명적일 수 있습니다.REST API에서 Race Condition?REST API에서도 동시 요청이 들어와 동일 리소스를 처리할 때, 순서가 꼬이면 의도치 않은 결과가 발생할 수 있습니다.예) 중복 결제, 포인트 중복 지급, 중복 예약 등이 대표적인 사례입니다.실전 예시 – 미션 완료 후 보상 지급상황 설명사용자가 미션 완료 후 보상 지급 요청을 보내는 API가 있습니다.정상적으로는 1회만 지급돼야 하지만, 동시 요청..
– Elasticsearch, Haystack, 그리고 htop으로 버텨낸 그 시절 이야기시작하며지금이야 Sentry, Datadog, CloudWatch 같은 모니터링 툴 없으면 불안해서 서버 못 만지지만, 그때는 2017년. 그런 거 잘 안 쓰던 시절이었다. 서버 상태는 감으로 느끼고, 장애는 몸으로 겪었다.그 시절, 나는 모니터링 시스템이자 에러 알림 툴, 그야말로 인간 뉴렐릭이었다.이 글은 내가 검색 성능 때문에 Elasticsearch를 도입하면서 겪은 삽질과, 서버가 터질 때마다 htop으로 위기 넘긴 그 시절, 2017년 이야기다.검색 성능 터지기 직전참고로 당시 내가 담당했던 서비스는 해당 블로그 에서 확인이 가능하다.지금은 사라졌지만, 그 시절엔 실제 사용자도 많았고 트래픽도 꽤 됐..

나무를 넘어서 숲을 봐야하는 이유 과거에 필자는 코드를 보다 깔끔하고 우아하게 작성하려는 노력의 일환으로, DDD(도메인 주도 설계)와 클린 아키텍처(Clean Architecture)에 관한 자료들을 크롬 탭에 수십 개 열어놓고, 단 한 줄의 코드를 작성하기 위해 몇 시간을 할애한 적이 있다. 이 글을 읽는 많은 개발자분들 역시 필자와 유사한 경험을 하셨을 것이라 생각한다. 필자는 깔끔하고 완벽한 코드를 작성하기 위한 노력하다가 프로젝트를 기한 내에 완수하지 못하게 한 경험이 있다. 이러한 경험을 통해, 단순히 코딩(나무)에만 집중하는 것이 아니라, 코딩+α(숲)를 고려하는 관점에서 사고하는 것이 중요함을 깨달았다. 개발자로서 앞으로 발생할 수 있는 상황을 고려하여 유지보수가 쉽고 확장성 있는 설계를 ..

당신은 방망이 깎는 노인이신가요? 수필 "방망이 깎는 노인"의 스토리는 대략적으로 이렇다. 동대문 맞은편 길가에 앉아서 방망이를 깎아 파는 노인이 있었다. 방망이를 한 벌 사 가지고 가려고 깎아 달라고 부탁을 했다. 값을 굉장히 비싸게 부르는 것 같았다. 나: "좀 싸게 해 줄 수 없습니까?" 노인: "방망이 하나 가지고 에누리하겠소? 비싸거든 다른 데 가 사우." 대단히 무뚝뚝한 노인이었다. 값을 흥정하지도 못하고 잘 깎아나 달라고만 부탁했다. 그는 잠자코 열심히 깎고 있었다. 처음에는 빨리 깎는 것 같더니, 저물도록 이리 돌려 보고 저리 돌려 보고 굼뜨기 시작하더니, 마냥 늑장이다. 내가 보기에는 그만하면 다 됐는데, 자꾸만 더 깎고 있었다. 인제 다 됐으니 그냥 달라고 해도 통 못 들은 척 대꾸가 ..
대학원 학부 수업중, 여러가지 딥러닝을 활용하여 이미지를 분류하는 실습과제 입니다. 아래 영상으로 설명을 대체합니다. https://www.youtube.com/watch?v=esc6orXnST8
db_default 필드가 추가됨 Example # db_default 값은 데이터베이스에서 계산된 기본값으로 터럴 값이나 Now와 같은 데이터베이스 함수일 수 있다. class MyModel(models.Model): age = models.IntegerField(db_default=18) created = models.DateTimeField(db_default=Now()) circumference = models.FloatField(db_default=2 * Pi()) GeneratedField 필드가 추가됨 class MyModel(models.Model): age = models.IntegerField(db_default=18) created = models.DateTimeField(db_def..
5.6 설치 sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe' sudo apt-get update sudo apt install mysql-server-5.6 mysql-client-5.6 sudo service mysql start UTF -8 로 설정하기 (/etc/mysql/my.cnf) [client] default-character-set=utf8 [mysqld] character-set-client-handshake = FALSE init_connect="SET collation_connection = utf8_general_ci" init_connect="SET NAMES utf8" character-..
참조 : https://github.com/rbenv/rbenv brew install rbenv ruby-build #rbenv를 bash에 추가하기 echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile source ~/.bash_profile #적용시키기 source ~/.bash_profile #루비 버전 업데이트 (변경) rbenv install 2.5.3 rbenv global 2.5.3 rbenv rehash #레일즈 설치 gem install rails #mysql로 시작하기 rails new projectname -d mysql #sqlite3 오류시 Gemfile을 아래와 같이 수정한다. ..