본문 바로가기

전체 글

(60)
Redis의 활용과 자료구조 Redis의 활용인증, 캐싱, 재고관리 등에 사용이 되는데 이것들은 데이터의 영구적 보관보단 일시적 관리에 사용된다. → ttl (시간제한)이 많이 사용됨데이터가 update되면 레디스에 있는 캐싱된 데이터도 같이 update시켜줘야 함aws를 사용하면 자동 캐싱을 해주는 경우가 있어서 더 좋은 속도 (성능)을 경험할 수 있다. 자료구조string : value가 string →재고관리list : value가 리스트 형식, 자바 deque 형식이다 → 최근 방문 페이지set : 중복제거, 순서 없음 → 오늘 방문자수zset : score를 기준으로 순서 있는 set → 최근 본 상품hset : value가 객체 형식 1. string# 좋아요 기능 구현set likes:posting:1 0incr lik..
한화 Beyond SW 캠프 7기 2주차 회고 배운 점데이터베이스와 관련해 아는 내용은 더 확실하게 이해할 수 있었고 몰랐던 내용도 꽤 있었는데 정말 데이터베이스에 대하여 전반적인 내용을 알 수 있었던 것 같다.특히 데이터베이스 동시성과 관련해 궁금한 점이 많았었는데 개인 프로젝트에서는 동시성까지 신경쓰지 못했었는데 그 부분에 대한 내용을 배울 수 있어서 좋았다. redis를 활용하거나 lock을 거는 작업 등을 통해 동시성 이슈를 해결해보고 싶다. (jmeter프로그램을 통해 동시성 테스트가 가능하다.)성능 최적화 얘기만 들어봤는데 인덱스를 활용해서 데이터를 빠르게 검색할 수 있다는 사실을 알게되었다.elastic cache라는 검색을 최적화해줄 수 있는 tool이 있다는 사실을 알게 되었다. 내가 알지 못했던 tool이 굉장히 많다는 것을 알게 ..
Redis 설치 및 접속하기 Redis키-값 형태의 저장소맵(Map) 데이터 저장소형태를 가지고 데이터를 메모리에 저장하여 빠른 읽기와 쓰기를 지원rdb는 기본적으로 disk에 저장이고 필요시에 메모리에 캐싱하는 것이므로, rdb보다 훨씬 빠른 성능필요시가 언제인가? 빈번한 조회가 일어날 때→ 인메모리이지만 주기적으로 디스크에 백업이 일어나기 때문에 데이터손실이 크지 않음로그인의 경우, 사용자 인증 키 값은 굉장히 빈번하게 사용되기 때문에 rdb에 넣어놓기보다 성능이 좋은 redis에 넣어놓는 경우가 굉장히 많음재고 값을 redis로 동시성 제어를 함 왜냐면 redis는 싱글 스레드 작업을 하기 때문에 동시성 이슈가 생기지 않음 (→ 한번에 한명을 굉장히 빠른 속도로 처리하기 때문에 가능한 것)인스타 좋아요 기능 구현시 redis를..
mariadb 사용자 관리와 프로시저 복습1:1 관계1:1관계에서 fk에 unique조건을 거는 것은 1:1관계를 데이터베이스 단에서 보장하기 위해서지 필수요소는 아니다. 프로그램 차원에서 검증이 가능한 사안이기 때문이다.n:m 관계정규화 1원칙인 원자성에 위배될 수 있기 때문에 교차 테이블을 사용하여 1:n, 1:m관계로 테이블을 나누어야 함예시)order테이블에 주문자와 여러 주문 상품과 수량이 있다면 정규화에 어긋남order테이블과 product테이블이 있다면 n:m관계이기 때문에order_product(order_details)라는 교차테이블을 생성해야함→ 주문 번호와 상품번호가 포함 사용자 관리 사용자 목록 조회 명령어select * from mysql.user;localhost - 내 컴퓨터에서만 사용 가능 % - 원격 접속이 가..
데이터 베이스 모델링과 정규화 데이터모델링데이터 모델링이란 구축할 DB 구조를 약속된 표기법에 의해 표현하고 설계해 나가는 과정을 의미데이터모델링 단계개념적 데이터 모델링추상화된 DB구조를 그리는 것논리적 데이터 모델링각종 ERD 툴을 사용하여 구체적으로 데이터베이스 설계. 각 데이터의 타입, 관계, key등을 지정물리적 데이터 모델링실제 데이터베이스를 만드는 과정이고, SQL 작성이 여기에 해당테이블들의 참조관계1:nn:11:1 - 1:1을 보장하기 위해서는 fk에 unique조건을 적용n:m만약 여러 author가 하나의 게시글을 수정할 수 있다면 n:m관계한 게시글에 여러 저자를 저장해야하는데 author_id에 리스트가 들어갈 수 없으므로 문제가 있음n:m 관계는 정규화에 위반될 가능성이 있음연결테이블을 만들어 1:n, n:1..
mariadb join, union, subquery, group by Join-- 글을 안 쓴 글쓴이 출력select a.id, a.email from author a left join post p on p.author_id=a.id where p.author_id is null;  Union여러 개의 SELECT 문의 결과를 하나의 테이블이나 결과 집합으로 표현각각의 SELECT 문으로 선택된 필드의 개수와 타입은 모두 일치해야함UNION은 DISTINCT 키워드를 따로 명시하지 않아도 중복되는 레코드를 제거-- union : 중복제외한 두 테이블의 select을 결합-- 컬럼의 개수와 타입이 같아야 함에 유의-- union all : 중복 포함select 컬럼1, 컬럼2 from table1 union select 컬럼1, 컬럼2 from table2;-- author..
트랜잭션의 이해와 JOIN 흐름제어-- 흐름제어 : case문select 컬럼1, 컬럼2, 컬럼3,case 컬럼 4 when [비교값1] then 결과값1 when [비교값2] then 결과값2 else 결과값3endfrom 테이블명;-- post 테이블에서 1번 user는 first author, 2번 user는 second authorselect id,title, contents,case author_id when 1 then 'first author' when 2 then 'second author' else 'others'endfrom post;-- author_id가 있으면 그대로 출력, 없으면 익명 출력select id,title, contents,case when author_id..
한화 Beyond SW 캠프 7기 1주차 회고 한화 Beyond SW 캠프에 지원한 이유가장 큰 이유는 생산성 있는 하루를 보내고 싶어서다.집에서 공부를 했었는데 아무래도 정해진 일정이 없다보니까 해이해지는 것을 어쩔 수 없었다.캠프 수업시간은 9-6시까지인데 많은 수강생 분들이 9시 이전부터 와서 6시 이후까지 공부를 하셔서많은 자극을 받고 하루의 대부분을 이곳에서 보내며 생산적인 하루를 보낼 수 있게 되었다. 배운 점리눅스 명령어 cp mv를 비롯한 기본 명령어의 이해했다.기억이 가물가물하던 권한관리에 대한 내용을 상기할 수 있었다. user group other에 대한 내용과 rwx정말 취약했던 데이터베이스에 대한 내용을 알게되었다. GUI를 사용하지 않고 데이터베이스 생성, 수정 등의 명령어를 배웠다. select 문을 사용하여 내가 원하는 ..