본문 바로가기
반응형

분류 전체보기714

[항해99-1주차 회고] TDD 시작하기 문제- 이번 주차를 지나며 겪었던 문제가 무엇이었나요? 이번 주차의 가장 큰 문제는 동시성 제어였습니다. 특히 포인트 충전/사용은 "사용자별"로 동시성 제어가 중요했습니다. 철수와 영희가 각각 포인트를 충전한다면 철수와 영희가 굳이 충전의 행위를 동시성으로 제어할 필요가 없습니다. 철수가 동시에 여러 번 충전하는 경우, 영희가 동시에 여러 번 충전하는 경우에 동시성 제어를 해야 합니다. 시도- 문제를 해결하기 위해 어떤 시도를 하셨나요? 동시성 문제를 해결하기 위해 락 메커니즘을 떠올렸습니다. 어플리케이션 수준의 락, DB 수준의 락, 혹은 Redis 등의 기타 락 방법이 있습니다. 이번 과제는 DB를 컬렉션을 이용하였기 때문에 어플리케이션 수준의 락을 사용하는 과제라고 생각했습니다.  해결- 문제를 어.. 2024. 10. 2.
[항해 99] 시작하는 마음 1. 지금까지의 회고 항상 단순히 기능이 동작하는 것 이상의 것에 목말라 있었다. 나름 신기술과 좋은 기술들을 많이 공부했으나 실무에서 경험할 기회가 없었다. 두번째로 옮긴 곳은 원하던 스택이 있는 커머스 회사였다. MSA환경에서 트랜잭션 전략을 고민하고, Redis를 활용해 성능을 개선하며 테스트코드 기반으로 안정적인 주문 시스템을 고민했다.   잠시 내려두었던 공부에 다시 의욕이 생겼고 더 잘하고 싶었다. 지금도 혼자서 테스트코드를 작성하며 클린코드와 코드리뷰 문화를 전파하기 위해 고군분투 중이다. 같은 파트원 분들부터 조금씩 전파하려고 한다. 현재의 고민은 테스트코드 기반 다지기, 성능 개선하기, 장애에 빠르게 대응하는 모니터링 방안 마련하기이다.  2. 항해플러스 참여 계기 첫째, 항해 플러스는 .. 2024. 9. 21.
그림으로 보는 도커 개념 + 명령어 정리 * 개요 이번 글의 내용 및 사진은 따라하며 배우는 도커와 CI환경 , 생활코딩 Docker 입구 수업 기반으로 작성하였습니다. 도커를 쓰는 이유 가상화 기술 등장 이전 가상화 기술 등장 이전에 하나 서버에 하나의 응용 프로그램만을 설치해야만 했습니다. 웹서버, Database를 구성하기 위해 '모든 서버마다 OS를 설치'하는 것은 메모리가 매우 비효율적인 일이었습니다. 하이퍼 바이저 기반 VM 등장   하이퍼 바이저의 등장으로 '논리적으로 공간을 분할'하여 VM(Virtual Machine)이라는 '독립적 가상 환경의 서버'를 사용할 수 있게 되었습니다. 하이퍼 바이저는 다수의 게스트 OS를 구동할 수 있도록 소프트웨어, 하드웨어 자원을 가상화하면서 하드웨어와 VM을 모니터링하는 중간 관리자역할입니다... 2024. 9. 13.
[도서] 힘든 일을 먼저 하라 미루기를 좋아하는 사람들의 다양한 원인과 극복 방법을 다루는 책이다.  나는 누구일까? '미루기'를 논하기 전에 먼저 나를 돌아보았다. MBTI로 나의 성향을 파악하자면 P인데 심지어 거의 99%에 육박한다. 갑작스럽게 정해지는 일이 오히려 이벤트라고 신나 하는 사람이며, 내일 부산여행을 가기로 했지만, 갑자기 경주로 바뀐다고 해도 동행자들이 괜찮다면 순수히 따른다. 여행은 굵직굵직한 장소를 선정하지만 세세하게 다 고려하지는 않으며 유동적으로 관리한다.   이 책을 읽으면서 좋게 말하면 다소 즉흥적이고 쾌활하지만 한편으로 나는 산만한 사람이라는 생각이 들었다. 일반적이고 무난한 대화 흐름 속에서 변주를 주는 위트를 좋아해서 언제든지 엉뚱하거나 웃길법한 멘트와 몸동작을 고민한다. 내 머릿속은 이것저것 생각.. 2024. 9. 13.
Windows 도커 설치하기 해당 글의 Windows 도커 설치는  MicroSoft의 이전 버전 WSL의 수동 설치 단계을 따릅니다.  도커 설치 순서1단계 - Linux용 Windows 하위 시스템 사용 2단계 - WSL 2 실행을 위한 요구 사항 확인 3단계 - Virtual Machine 기능 사용 4단계 - Linux 커널 업데이트 패키지 다운로드  기본적으로 관리자 권한으로 PowerShell을 이용하여 관련 파일을 설치합니다. WSL란, 별도의 가상머신 또는 이중부팅 없이 Windows 컴퓨터에서 Linux 환경을 실행할 수 있는 Windows의 기능입니다.   관리자 권한으로 PowerShell에서 아래 명령어를 입력합니다.dism.exe /online /enable-feature /featurename:Microso.. 2024. 9. 10.
웹 게임을 만들며 배우는 Vue(섹션별 회고) *개요   웹 게임을 만들며 배우는 Vue 강의를 듣고 유용한 문법을 섹션별로 회고합니다. 데이터 중심으로 사고하라(화면에서 변경되는 부분과 아닌 부분을 잘 구분하라)  섹션 1 끝말잇기- ref를 사용하면 특정 요소에 접근할 수 있습니다. 예를 들어, this.$refs를 사용해 ref="answer"로 정의한 요소에 계속 커서를 유지하도록 focus()를 걸 수 있습니다.  제출 ...export default { ... methods : { onSubmit(e) { e.preventDefault(); this.$refs.answer.focus(); } }}   섹션 2 구구단- 같은 화면을 여러번 넣고 싶다면(각기 다른 d.. 2024. 8. 1.
computed vs watch vs method *개요data, computed, watch 사용의 차이를 알아봅니다.  추가사항(2024-10-23) 매개변수가 전달되는 경우에는 computed 캐싱 기능을 활용 못하므로 methods 사용 computed vs method  computed: { // a computed getter reversedMessage: function () { // `this` points to the vm instance return this.message.split('').reverse().join('') } } methods: { reverseMessage: function () { return this.message.split('').reverse().join('').. 2024. 6. 12.
[vue 터미널 실행 오류] "vue : 이 시스템에서 스크립트를 실행할 수 없으므로 파일을 로드할 수 없습니다" *개요*npm install @vue/cli 명령어로 Vue를 설치하고 Vue 버전을 확인하려고 하는데 오류가 났습니다.(Vue CLI 설치는 공식문서를 참고하세요 - https://cli.vuejs.org/guide/installation.html)    원인 및 해결방안 해당 오류의 원인은 Windows 실행 정책입니다. 기본은 Restricted으로 "개별 명령을 허용하지만 스크립트는 허용하지 않습니다." 따라서 정책을 변경하거나 개별 명령을 실행해야 합니다. 자세한 내용은 공식문서를 참고하세요(about_Execution_Policies)  정책더보기AllSigned 스크립트를 실행할 수 있습니다. 로컬 컴퓨터에서 작성하는 스크립트를 포함하여 신뢰할 수 있는 게시자가 모든 스크립트 및 구성 파일에.. 2024. 5. 29.
Authentication 아키텍쳐 *개요Authentication(인증) 아키텍처 공식문서를 확인합니다.자세한 내용은 Servlet Authentication Architecture에서 확인 가능합니다.(5.6.13-SNAPSHOT 기준)  SecurityContextHolder    스프링 시큐리티 인증 모델의 핵심은 SecurityContextHolder입니다. 인증 정보들을 저장하는 장소입니다. 스프링 시큐리티는 SecurityContextHolder가 어떻게 채워지는지 관심이 없습니다. 값이 있다면, 인증된 사용자로 활용합니다. 즉, 사용자 인증을 구현하려면 SecurityContextHolder에 직접 인증정보를 넣습니다. SecurityContext context = SecurityContextHolder.createEmpty.. 2024. 5. 21.
반응형