트랜잭션이란 ? 데이터베이스 시스템에서 여러작업을 하나의 단위로 묶어서 처리하는 것데이터베이스의 일관성을 유지하기 위해서 중요하며, 주로 금융이나 전자상거래, 재고 관리 시스템등에서 사용한다. 트랜잭션의 주요 특징 (ACID)(1) 원자성 Atomicity- 트랜잭션 내의 모든 작업들이 모두 성공하거나, 모두 실패해야 한다는 것을 의미함- 트랜잭션이 중간에 실패하면 그 트랜잭션이 수행한 모든 변경 사항들이 취소되어야함. ex) 은행에서 A계좌에서 출금해서 B계좌로 입금한다고 가정했을때,A계좌에서 출금은 되고 B 계좌로 입금이 실패했을 경우, 시도했던 모든 동작들을 실패로 돌리는 것이 트랜잭션 원자성을 만족하는 것이다. (2) 일관성 Consistency- 트랜잭션이 성공적으로 완료되면, 데이터베이스는 일..
분류 전체보기
에러로그를 잘 찍을 수 있는 도구인 sentry나도 멋있게 에러로그를 확인해보고 싶었다! 1. sentry에 가입한다2. project를 생성한다 (라라벨 선택)3. https://docs.sentry.io/platforms/php/guides/laravel/other-versions/laravel8-10/#install Laravel 8.x, 9.x and 10.x | Sentry for LaravelLearn about using Sentry with Laravel 8.x, 9.x and 10.x.docs.sentry.io이제부터는 이 링크를 참조해서 작업하면 된다본인의 맞는 라라벨 버전에 맞게 문서를 찾아서 하면 세팅 끝!sentry는 문서가 엄청 잘 되어있는 것 같다 본인의 라라벨 버전 확인 방법..
1. 캐시란?- 자주 참조되는 데이터나 계산 결과를 미리 저장해두어, 반복적인 데이터 접근이나 연산 속도를 빠르게 하기 위해 사용되는 고속의 임시 저장소를 모두 일컫어 캐시라 한다.- 주로 자주 접근하는 데이터에 대해서 연산 속도를 최소화하여 좋은 퍼포먼스를 내기 위해 사용한다- 자주 접근해야하는 데이터에 대해 접근 시간을 줄이고 시스템 성능을 향상 시키기 위해 사용한다고 보면 됨! + 내 생각* 쇼핑몰 같은 경우 상품상세페이지에 접근할 때 여러가지 데이터를 데이터베이스를 통해 가져오는데,상품정보 뿐만 아니라 관련 광고데이터, 배너데이터, 상품리뷰, 상품문의, 그 외 상세페이지에 들어가는 정보들이 무수하게 많다.그 중 자주 상품정보데이터는 계속 바뀔 수 있기 때문에 캐시를 하는 것은 좀 무리라고 생각이 ..
현재 우리 회사는 약 600만개의 상품데이터를 가지고 있다.디비엔진도 Myisam이다! 트랜잭션도 없고 테이블락밖에 없다현재는 그나마 상품정제를 통해서 상품수를 좀 줄여나가면서 db관리를 해나가고 있는데이보다 더 큰 상품개수를 가지고 있는 오픈마켓 이커머스 서비스들은 데이터베이스를 어떻게 관리하고 있을까?단순히 RDBMS를 테이블을 잘 정규화해서 쓴다던가 하는 내용은 너무 모호한 것 같다는 생각이 들어서 정리하고자한다.2억개의 데이터를 저장하고 보관하려면 데이터의 특성,용도,접근 패턴등에 따라서 달라질 수 있다 1. 데이터의 종류와 크기를 확인해보자- 텍스트 데이터인가? 로그, 메타데이터, 메시지등을 담은 데이터인가?- 숫자 데이터인가? 통계, 측정값등을 저장하는 데이터인가?- 이미지,비디오인가? 대용량..
IT 개발자 단톡방에서 토론이 벌어졌다개발을 할건데 JPA를 할까 mybatis를 할까 라는 토론이었다여기서 사람들은 DDD라는 개념을 가져와서 토론을 진행했다나는 DDD를 모른다...!토론의 맥락을 따라가기 위해 DDD 개념을 찾아보았다 1. DDD란?DDD는 "Domain-Driven Design"의 약자로, 소프트웨어 개발 방법론 중 하나다. 이 방법론은 복잡한 소프트웨어 시스템을 개발할 때, 도메인(문제 영역)의 개념과 로직을 중심으로 설계하는 것을 강조한다.쉽게 말해서, DDD는 프로그램의 구조를 실제 비즈니스나 문제 상황을 반영하도록 만드는 것을 목표로 한다. 2. DDD의 주요개념도메인: 소프트웨어가 해결하려는 문제 영역. ex) 전자상거래 시스템에서는 상품, 주문, 결제 등이 도메인에 해당..
면접 단골 문제..!DDL DML DCL를 간단히 설명해볼 수 있나요?DDL , DML , DCL에 해당하는 명령어를 말해줄 수 있나요?데이터베이스에서는 데이터를 다루기 위한 모든 작업을 SQL을 이용해 작업한다.SQL은 다루는 객체나 용도에 따라서 그룹핑할 수 있다.DDL, DML, DCL, TCL로 나누어서 부른다. 1. DDL (데이터 정의어) - 데이터베이스의 구조 정의에 사용하는 언어- create : 테이블을 생성- truncate : 테이블 내용을 삭제 (초기화) > drop과는 다른 개념임- alter : 테이블의 구조 변경 (컬럼 추가 등등)- drop : 테이블 삭제 (truncate는 내용만 삭제, drop은 아예 테이블 삭제) 2. DML(데이터 조작어) - 데이터 조작에 사용하는..
https://stackoverflow.com/questions/27776129/php-curl-curlopt-connecttimeout-vs-curlopt-timeout PHP cURL: CURLOPT_CONNECTTIMEOUT vs CURLOPT_TIMEOUTPHP has these two options related to timeout: CURLOPT_CONNECTTIMEOUT and CURLOPT_TIMEOUT. The descriptions on the PHP site are a bit vague. What's the difference? To use a real world example: say...stackoverflow.com PHP의 CURL을 사용할 때 옵션 값 중 CURLOPT_TIM..
면접 단골 문제 1번 ..정규화란 무엇인가요?정규화를 실제로 해본 경험이 있나요?정규화를 해봤다면, 제 몇 정규형까지 만족시키게끔 고려하는 편인가요?1. 정규화 개념- 데이터 모델링을 할 때, 최대한 중복 데이터를 허용하지 않아야 저장공간을 효율성 있게 사용할 수 있고, 이에 따른 업무 프로세스의 성능을 기대할 수 있다. 이렇게 중복 데이터를 허용하지 않는 방식으로 테이블을 설계하는 방식을 정규화라고 한다.* 데이터 이상현상을 줄일 수 있음* 데이터의 중복을 제거하고 데이터 모델의 독립성을 확보할 수 있음 2. 정규화 단계제 1정규화(1NF) -> 제 2정규화(2NF) -> 제 3정규화(3NF) -> BCNF(boyce-codd Normal Form) 정규화 -> 제 4정규화 .. 더 많은 정규화 단계..
나는 대학생때 자바 수업이 있었다 C, C++, C#, PHP, JS 등등 여러가지 언어를 쓰는 수업을 들으면서 솔직히 벽을 느낀적은 없던 것 같다 문법이야 뭐 거의 대부분이 은근히 교집합이 약간씩 있고, 프로젝트할때도 크게 와 너무 어렵다 하면서 생각해본적은 없다 학부때 수준이야 그렇게 높은 수준을 요구했던 게 아니기도 하고,, 그런데 이상하게............. JAVA는 싫었다 비슷한 웹개발 언어인 PHP는 사랑했는데 JAVA는 싫었다 그 이후로 웹개발자라는 직업은 희망했으나 주 언어는 PHP로 지원해서 현재까지 다행히 회사를 다니고 있다 근데 이제, 다른 회사를 알아보려고 하는데 분명히 3년전에 회사를 알아볼 때는 PHP를 쓰는 회사가 많았는데,, 😭 웹개발 시장이 많이 달라졌다 PHP라는 언..
import org.springframework.http.HttpStatus;java 파일에 그냥 써서 추가해주면 추가가 된다 왜 vscode에서 ctrl + . 을 하면 안나올까 근디?