Web

·Web
개요저는 디스플레이가 박살이 나버린 맥북으로 홈 서버를 구축해서 사이드 프로젝트를 배포했고, 개발용 서버로도 사용 중입니다. 비싼 돈 주고 산 16인치 맥북을 카페에서 실수로 떨어트렸는데, 모서리 부분이 아작이 나버렸습니다. 디스플레이 교체 비용 견적을 내보았는데 너무 비싸서, 차라리 새 맥북을 한대 더 사는 게 나을 것 같더라구요. 그래서 예정에 없던 새 맥북을 구매했습니다. 기분이 좋은데 안 좋네요.. 그런데 디스플레이만 망가졌지, 다른 건 멀쩡하게 작동하는 맥북을 그냥 썩히기에는 너무 아깝다는 생각이 들어, 클라우드 임대료도 아낄 겸 이 맥북을 홈 서버로 구축해서 써먹어보기로 했습니다. 결과적으로 최근에 진행했던 팀 프로젝트를 그 맥북에 성공적으로 배포해서 운영 중입니다. NCP 기준으로 4코어 1..
·Web
개요최근 진행한 프로젝트에서 동시성 문제로 인한 에러를 경험했습니다. 게시글에 '좋아요'를 토글할 수 있는 기능이 있는데, 사용자가 이 버튼을 빠르게 연타하면 MySQL에 동일한 Unique Key로 insert를 시도하게 되면서 중복 엔트리 예외가 발생하는 케이스였습니다. 처음에는 조회 쿼리에 배타적 Lock을 추가해서 해결했습니다. 에러를 해결하는게 우선이니, 가장 쉽고 빠른 방법을 선택했습니다. 그런데 Lock으로 해결하는 방식은 최선의 방법이 아니었다고 생각했습니다. Lock으로 인해 불필요한 DB 부하가 발생하고, 무엇보다 응답 시간이 길어져 사용자 경험에 악영향을 끼친다고 느꼈기 때문입니다. 그래서 동시에 들어오는 요청들을 순서대로 처리해주는 메시지 큐 시스템을 도입했습니다. 요청에 대한 성공..
·Web
개요최근 진행한 사이드 프로젝트에서 Spring Security를 사용했습니다. 처음에는 학습 차원에서 인터넷과 책에서 찾은 기본 구현 예제를 따라 해봤는데, 생각보다 개발자가 직접 구현해주어야 하는 부분이 적고 간단해서 기본적인 구현 정도는 쉽게 할 수 있었습니다. 자체 로그인 기능을 구현할 때 비밀번호 암호화 알고리즘으로 BCrypt를 사용했습니다. Spring Security 프레임워크에 기본적으로 내장되어 있는 방식이라 추가 의존성 설치를 할 필요가 없다는 장점이 있고, 비밀번호 암호화에 사용하기 적절한 단방향 암호화 알고리즘에 안정성까지 보장받은 알고리즘이라고 합니다. 그런데, 예제를 따라해보는 동안 한 가지 의문점이 들었습니다."내가 직접 Salt 값을 세팅해놓지 않았는데, 왜 안전한 거지? ..
Clover Laundry
'Web' 카테고리의 글 목록