목록프로젝트/coFi 개발자 커뮤니티 (5)
개발자 블로그
동시성, Concurrency란? DB에서의 동시성에 대해, DB에 다수의 사용자가 동시에 접근하는 상황에서 동시성은 transaction이 순차적으로 실행되는 것이 아니라, 순서에 상관없이 동시에 실행되는 것을 의미한다. 예를 들어보자. "비행기 티켓팅을 한다고 생각해 봅시다. 비행기에 자리가 하나 남은 상황. A와 B는 같은 비행기를 예매하려고 합니다. A, B 둘 다 비행기의 잔여좌석을 확인하기 DB를 확인하게 됩니다. 이때 동시에 접근하여 한자리 남은 것을 확인하고 둘 다 예매에 성공한다면 어떤 일이 일어날까요? 비행기 자리 하나에 둘 모두 예매가 되어버리는 상황이 발생합니다. " 위와 같은 이유로 동시성을 고려하여 관리해야한다. 개발자가 동시성을 어떻게 관리해야 하는지 알아보기 전에 RDBMS는..

웹 어플리케이션/웹 서비스를 배포하고, 확장하고, 관리하는데 있어 쉽고 빠르게 할 수 있도록 돕는 완전 관리형 서비스이다. Elastic Beanstalk는 Java, Go, PHP, .NET, Node.js, Python, Ruby 등으로 개발된 앱을 지원하고 각 플랫폼마다 다양한 구성을 지원한다. 쉽게 EC2로 웹 서비스를 만들어 사용하는 경우를 생각해보자. 일단 가동시킬 애플리케이션을 개발한다. 이어서 EC2 인스턴스를 생성하고, 애플리케이션 동작을 위한 미들웨어 설치와 설정을 진행한다. 필요하다면 데이터베이스도 구축하고 서버를 확장하고 로드밸런싱한다. 이어서 인스턴스를 모니터링하고 알림을 보내주는 구조도 만든다. 여기까지 해야 애플리케이션을 디플로이하고 웹 서비스를 시작할 수 있다. Elastic..
TDD란? Test Driven Devlopment, 테스트 주도 개발로 '테스트가 개발을 이끈다' 라는 말. 1. 그렇다면 왜? 테스트 주도 개발을 해야할까? 애자일이란에서 설명한 것과 같이 불확실성이 높을 때 ‘피드백’과 ‘협력’이 중요하다. 피드백과 협력이 중요한 이유 - 불확실성이 높을 때 ‘피드백’과 ‘협력’을 이용하면 더 좋은 결과가 나올 확률이 높아진다. - TDD도 마찬가지로 ‘피드백’과 ‘협력’을 증진시키는 것이기 때문에 불확실성이 높을 때 도움이 되는 것이다. 2. 그럼 언제 사용해야 할까? 만약 어떤 부분에 대한 코딩을 여러번 해봤고 결과가 어떻게 나올지 뻔하다면 TDD를 하지 않아도 된다. 또한 TDD를 했을 때 얻는 것이 적다면 TDD를 하지 않아도 된다. 그렇다면 TDD는 어떤 ..

Django Form의 역할 및 정의: HTML을 작성하고, 입력된 데이타의 유효성을 검증하고, 필요시에 입력된 데이타를 검증 결과와 함께 다시 표시하며, 유효한 데이타에 대해 요구되는 동작을 수행하는 것을 "올바르게 하기"위해서는 꽤 많은 노력이 필요한 작업이다. Django는 일부 과중한 작업과 반복 코드를 줄여줌으로서, 이 작업을 훨씬 쉽게 만든다! Django의 폼 처리 과정은 (모델에 대한 정보를 보여주는데 있어서) 우리가 앞선 튜토리얼에서 배웠던 것과 같은 기술을 사용한다. : 뷰는 요청을 받고, 모델로 부터 데이타를 읽는것을 포함한 요구되는 동작을 수행한다. 그런 다음, (보여줄 데이타를 포함한 context를 전달받은 템플릿으로 부터) HTML page를 생성하고 반환한다. 서버 또한 사용..

사이트 url https://cofi-f5.com/ 깃헙 레포 https://github.com/KEEMSY/F5_TEAM3 지난 3월 한 달간 부트 캠프 마지막 프로젝트로 개발자 커뮤니티 웹사이트를 제작했다. 세션 방식의 로그인과 게시글의 ‘좋아요’ 기능을 담당했습니다. 중간 시연회에서 회원가입과 로그인 기능을 동기 구현으로 한 것에 대해 사용자의 25% 이상이 지적을 했다. 그래서 해당 부분을 django의 forms를 활용하여 동기 구현을 유지하되 잘못된 데이터를 입력했을 시 데이터가 사라지지 않고 그대로 남겨두어 사용자가 다시 수정하기 편하게 리펙터링 하였다. 그래서 최종 시연 때에는 해당 부분에 대한 컨플레인을 받지 않을 수 있었다...!! 또한, ‘좋아요’ 기능에서는 테스트 주도 하에 개발을 ..