1. 트랜잭션의 정의 트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 (논리적) 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션의 특징 1. 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다. 3. 하나의 트랜잭션은 Commit되거나 Rollback된다. 2. 트랜잭션의 성질 Atomicity(원자성) 1. 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 2. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 ..
https://cobbybb.tistory.com/18
Http 프로토콜을 사용하는 웹 환경에서 상태를 유지하기 위한 방법은 여러가지가 있다. 대표적으로 쿠키,세션 방법을 많이 이용한다. * 쿠키 - 상태유지를 위해 쿠키에 유저 정보를 담고 서버와 클라이언트간 정보를 주고받는 형태로 상태를 유지한다. 유저 정보 또는 중요한 정보를 쿠키에 담아 놓으면 보안상 해킹을 당할 가능성이 있다. 그래서 나온 방법이 세션이다. * 세션 - 쿠키를 기반으로한 상태 유지 법이다. 쿠키와의 가장 큰 차이점은 중요한 정보를 서버에 저장한다는 것이다. 유추할 수 없는 고유의 세션번호를 가진 세션을 서버에 저장한다. 그리고 그 세션번호를 쿠키에 담아 클라이언트에게 전달하고, 클라이언트는 모든 요청에 세션번호가 담긴 쿠키를 함께 보낸다. 이러한 패러다임으로 동작한다. HttpSess..
애자일 방법론이란? - 애자일(Agile) 방법론은 구체적인 개발 프로세스가 아닌 개발 지침, 철학에 가깝다. - 변화를 수용하고 협업과 제품의 빠른 인도를 강조하는 반복적 개발 방법 - 문서화보다 코드, 프로그램, 소프트웨어 자체를 중요시 함 - 환경과 요구사항의 변화는 불가피하며 이에 대응하는 것이 현실적으로 중요하다. - 기존의 개발 프로세스는 설계 기간이 길며 재작업 시 오버헤드가 크다. * 애자일 선언문(Agile Manifesto) 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다. 요구사항이 바뀌기 쉬운 중소형의 비즈니스 시스템이나 전자 상거래 응용에 적합하다. 애자일 방법론의 종류 익..
1. 객체지향이란 객체(Object) 실세계의 실체와 개념을 반영하는 상태(Status)와 행위(Behavior)를 정의한 데이터의 집합 객체지향(Object-Oriented) 프로그래밍 각자의 역할을 가진 객체들끼리 서로 메시지를 주고받으며 상호작용하도록 프로그래밍 하는 것 2. 객체지향의 장단점 * 객체지향의 장점(강점) 객체를 중심으로 프로그래밍하기 때문에, 사람의 관점에서 프로그램을 이해하고 파악하기 쉽다. 강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 가진다. 재사용성, 확장성, 유지보수성, 융통성이 높다. 이러한 장점 때문에 디버깅과 유지보수가 용이하고 설계과 분석이 비교적 쉽다. * 객체지향의 단점(한계) 객체 간의 정보 교환이 모두 메시지 교환을 통해..
로컬에서 개발할 때는 코드를 변경하고 재실행하며 개발이 가능했다. 그리고 이미지, 동영상 등 정적파일 관리에 대한 큰 고민이 없었다. 그냥 내 컴퓨터에 파일을 저장하면 되니까! 하지만 직접 서비스를 운영하기 위해선 24시간 돌아가는 운영서버에 내 프로젝트를 배포해야한다. 그 기틀을 마련하기 위해선 여러가지 설치 및 설정을 해줘야한다. 1. AWS EC2 인스턴스 생성( 가상 서버 생성 ) 2. AWS RDS 생성( 관계형 데이터베이스 ) 3. 역할 및 보안 설정 1. 수동 배포 github에 프로젝트 푸쉬 후 EC2서버에서 - git clone or git pull 테스트 및 빌드 - gradlew test / gradlew clean build (gradle이 없는 환경에서도..