n+1 query problem

N + 1 query? ORM에서 가장 흔하게 발생하는 성능 이슈의 원인 1회의 쿼리로 가져온 데이터 N개에서 데이터마다 추가 쿼리가 발생하는 문제 N + 1 쿼리의 주된 발생 원인은 대부분의 ORM이 갖는 특징은 Lazy Loading의

2020년 7월 29일
·
0개의 댓글
post-thumbnail

CORS

웹 상에는 스크립트가 작동한 페이지의 origin과 스크립트가 요청하는 origin이 같아야 하는Same Origin Policy가 적용되어있다.그러나 최근 웹 트렌드 상 클라이언트 사이드 렌더링이 보편화 되면서 Origin이 다른 서버(예를 들면 백엔드)등과 통신해야

2020년 7월 22일
·
0개의 댓글
post-thumbnail

Before and After - Wecode 후기

한명의 백엔드 개발자가 되기 위해서 젖먹던 힘까지 쏟아부었던부트캠프 Wecode의 3개월 과정이 끝이 났다.의욕 만땅인 남녀 31인이 한데 모여서 한 목표를 향해 전진했던 경험은난생 처음이었을 뿐더러 또 그만큼 인상이 깊었기에 이렇게 후기를 남겨보려 한다내 첫번째 시작

2020년 7월 13일
·
3개의 댓글

SQL injection

인증 우회ID, password를 입력하는 페이지를 타겟으로 하는 공격으로정상적인 계정정보 없이 인증을 통과할 수 있다주로 쿼리의 필터링 조건의 논리를 True로 만들어 쿼리를 무력화 하는 방법을 사용한다DB 조작타겟 시스템의 주요 데이터를 탈취하기 위한 방식조작된 쿼

2020년 7월 13일
·
0개의 댓글
post-thumbnail

인터넷 환경

비연결성 : L3에서 IP는 해당 패킷의 목적지 IP가 자신의 IP와 일치하는지 여부만 확인하기 때문에 패킷의 송신자는 패킷의 상태를 추적할 수 없다 ex) 패킷이 제대로 도착했는지 여부 등비신뢰성 : Best Effort service로서 패킷의

2020년 7월 5일
·
0개의 댓글
post-thumbnail

JWT의 보안적 고려사항

alg : None JWT 변조 공격으로 가장 흔한것은 Signature Stripping인데 헤더의 alg 클레임을 None으로 변조하는 공격으로 몇몇 JWT 라이브러리들이 alg가 None인 토큰을 유효한 토큰으로 인식하는 문제가 있습니다 XSS

2020년 7월 2일
·
1개의 댓글
post-thumbnail

JWT

JWT란? JSON Web Token의 약자, 웹표준 RFC 7519에 정의되어 있다 서버와 클라이언트 사이의 통신에서 인증 여부를 판단하고 클라이언트의 권한을 파악하기 위해 사용하는 액세스 토큰의 한 구현체 Claim(사용자의 속성 정보)를

2020년 6월 30일
·
0개의 댓글
post-thumbnail

브라우저의 동작

UI브라우저에 종속적인 렌더된 HTML부 이외의 모든 부분ex) 주소 표시줄, 이전/다음 페이지 버튼, 북마크 등브라우저 엔진UI가 렌더링 엔진에 쿼리를 전달할 수 있도록 동작 제어렌더링 엔진HTML과 CSS문서를 파싱/해석하여 화면에 표현통신부HTTP 요청과 같은 네

2020년 6월 28일
·
0개의 댓글

flask customencoder

flask의 jsonify 내장함수는 flask의 jsonserializer역할을 하는데string형태로 출력하는 기능을 내장하지 않은 데이터타입의 경우serializer 에러를 볼 수 있다이 때위와 같이 JSONencoder를 상속받아 특정 객체에 대한 행동을 정의해

2020년 6월 7일
·
0개의 댓글

datetime과 timestamp

DATETIME의 경우 99991231 235959까지,TIMESTAMP의 경우 20381231 235959까지 지원TIMESTAMP의 경우 system timezone에 의존적인 값으로서버의 timezone이 바뀔경우 연동되어 값이 바뀐다

2020년 6월 7일
·
0개의 댓글

ALTER TABLE, CONSTRAINT

ADD : table에 새 attribute 추가MODIFY : attribute의 속성을 변경 ( 자료형, 기본값, NOT NULL)등CHANGE : attribute의 이름 변경 + MODIFY의 기능 수행DROP : attribute 삭제저장될 데이터에 대해 거는

2020년 6월 5일
·
0개의 댓글

GROUP BY

GROUP BY

2020년 5월 31일
·
0개의 댓글

이력 관리

데이터베이스에는 CRUD에 해당하는 기능들이 모두 존재하나 soft delete를 위하여DELETE 메소드가 호출되어도 실제로 데이터베이스에서 레코드가 삭제되지는 않는다이때 삭제된 데이터는 soft delete 되었다는 속성을 가져 서비스에서 사용되지 않게 되거나his

2020년 5월 30일
·
0개의 댓글

SubQuery

SELECT SubQuery 이 때 서브쿼리는 스칼라 형태여야 하며 후에 설명한다SET SubQueryFROM SubQuery위 쿼리는 Oracle DB에서 LIMIT을 대체하는 용도로 사용된다sq는 전체 쿼리가 아닌 서브쿼리에 대한 별명으로 동작한다INSERT

2020년 5월 24일
·
0개의 댓글

mysql CRUD

MySQL에서는 다음과 같이 대응된다CREATE : CREATE(database, table), INSERT(record)READ : SELECTUPDATE : UPDATEDELETE : DROP(database, table), DELETE(record)기본적으로

2020년 5월 23일
·
0개의 댓글

raw query 요점 정리(1)

FROM 절은 attribute 중에서, WHERE는 record 중에서 필터링한다 NULL값을 타겟으로 필터링할 시 = NULL이 아닌 IS NULL을 사용한다연산자는 =, >, >=, <, <=은 기본적인 연산자와 같으나 !=의 경우 <>로 사용한

2020년 5월 19일
·
0개의 댓글

DB 설계 순서

요구사항 분석DB 용도 파악서비스 요구사항을 정리요구사항 분석 단계에서는 DB 사용자의 범위를 결정하는것이 선행되어야한다실질적으로 필요한 요구사항만 추려내기 위함이다개념적 설계DBMS에 독립적인 설계개념스키마 구성을 위한 단계중요 데이터인 개체를 추출ex) 이름, 번호

2020년 5월 16일
·
0개의 댓글

unit test

테스트 3가지 UI 테스트 / end to end 테스트 Integration test Unit test E2E test 모든 프로그램을 배포한 뒤 테스트 시간, 공수 큼 integration test 전체적인 배포 없이 일부분에 대한 테스트 unit 코드에서

2020년 5월 11일
·
0개의 댓글

Q, F expression

AND Q(questionstartswith='Who') & Q(questionstartswith='What') Q(questionstartswith='Who'), Q(questionstartswith='What')OR Q(questionstartswith='Wh

2020년 5월 9일
·
0개의 댓글
post-thumbnail

join

연산자EQUI JOIN 두 테이블 간의 속성 값이 서로 일치하는 경우 join = 연산자를 사용한다 NON EQUI JOIN두 테이블 간의 속성 값을 비교하여 join 비교 연산자 사용 ex) BETWEEN AND, IS NULL, IS NOT NULL, IN,

2020년 5월 6일
·
0개의 댓글