본문 바로가기

반응형

전체

(55)
React-01(기초) React 현대적 프론트엔드 개발 방법 facebook, discord, twitter 등 SPA(single page application) 방식으로 개발됨. 전체 html구조가 아닌 특정 부분만 바뀌며 랜더링 되는 방식 M(model)V(view)C(controller) 모델 : 데이터 뷰 : 바뀐 데이터를 보여줌 컨트롤러 : 사용자 이벤트 처리 mvc 단점 : 양방향 데이터 바인딩으로 인해 model과 view의 의존성이 발생함. 복잡해질수록(데이터가 많아지고 상호작용하는 데이터도 많아지고 이에 따라 보여줘야할 view도 바뀌게됨.) 개발자 유지보수가 어려워진다. 해결하기 위해 facebook에서 리액트 개발 Virtual Dom을 통해 모든 HTML을 수정하지 않고 일부만 수정한다. before ..
로드밸런싱-개념 로드밸런싱(Load Balancing) - 개념 개발 후 배포에 있어 중요한 고려사항으로 로드 밸런싱을 꼽을 수 있다. 단순히 서버 하나만 이용하는 경우는 극히 드물다. 초기에는 단일 서버로 운영이 가능하겠지만 서비스가 인기가 많아지고 사용량이 많아질수록 서버에는 부하가 걸릴것이다. 이러한 트래픽에 대처할 수 있는 방법은 몇 가지가 있다. 코드 최적화 : 캐시를 적용하거나 로직을 바꾸는 작업 Scale up : 서버 성능 높이는 작업(더 좋은 CPU, 더 좋은 RAM 등..) Scale out : 여러 대의 서버를 두는 것(여러 대의 서버로 균등하게 트래픽을 분산해주는 방식으로 로드밸런싱이 필수적이다.) 로드밸런싱 컴퓨터 네트워크 상으로 들어오는 트래픽이 하나의 서버에 집중되지 않도록 서버의 기능을 분산..
[MSSQL] 현재 락 걸린 쿼리 확인 & 죽이기 문제 없이 쿼리를 작성하는게 베스트겠지만 예상치 못하는 문제로 인해 LOCK이 걸려 작업이 불가능한 경우가 있다. 이럴경우 문제가 되는 쿼리가 실행중인 프로세스를 죽여주는 방법이 필요하다. 현재 실행중인 쿼리 확인 SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.total_elapsed_time FROM sys.dm_exec_requests req CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 현재 락 걸린 쿼리 확인 SELECT DISTINCT name AS database_name, session_id, host_name, login_time, login..
[SQL] Injection Attack 예방기 SQL Injection Attack mybatis에서 자연스럽게 쓰던 #{} 한번도 의문을 갖지 않은 내 자신이 부끄러워진다. 왜 ${}를 안쓸까? nodejs 관련해 공부하다 SQL Injection Attack에 관해 알게되어 관련사항들을 정리해보았다. 공격 사례 15년 뽐뿌 공격 : https://www.boannews.com/media/view.asp?idx=47836&kind=1 17년 여기어때 공격 : https://www.bloter.net/newsView/blt201703240005 SQL Injection Attak이란? 사용자가 보안상 취약점을 이용해 임의로 sql문을 주입해 DB를 조작하는것을 뜻한다. WHERE 절을 이용한 공격과 UNION 절을 이용한 공격이 있다. 예시 사용자가..
Npm 서버에 나만의 패키지 Publish 매번 프로젝트마다 패키지 기본설정하는게 귀찮아!! 그래서..! eslint prettier jsconfig gitignore readme dotenv 등등... npm 서버에 만들어놓고 cli로 다운로드 편하게 이용해보자! https://www.npmjs.com/ 들어가서 로그인하기 (없으면 회원가입고고) 배포할 프로젝트의 package.json에 입력할 것들 입력!(버전, 라이센스 등등) (참고 : https://docs.npmjs.com/cli/v6/configuring-npm/package-json) (name 항목은 @내아이디/내프로젝트명으로 입력해 중복 방지한다.) package.json과 같은 위치에서 터미널 실행 npm login으로 터미널에서 로그인 (로그인이 잘 되었는지는 npm whoa..
[MSSQL] 싱글유저 모드에서 멀티유저 모드 변경 오류 DB작업시 현재 다른 연결을 끊어야 할 경우가 있다. 이럴경우 평소 엑세스 제한 모드를 제한된유저(restricted user)모드로 변경하고 작업하곤한다. 하지만 단일 사용자(Singleuser) 모드로 변경했을경우에는 주의해야할 점이 있다. 단일 사용자 모드의 경우 다른 세션이 살아 있기에 DB의 상태 변경을 하지 못하는 경우가 있을 수 있다. 이럴경우 ALTER DATABASE 'DB명' SET MULTI_USER명령어를 통해 다시 멀티유저로 변경시 다음과 같은 오류가 뜨게 된다. 지금은 데이터베이스 'DB명'의 상태나 옵션을 바꿀 수 없습니다. 데이터베이스가 단일 사용자 모드이며 현재 한 사용자가 연결되어 있습니다.이때 아래의 명령어를 실행하면 현재 내 DB에 접속중인..
MSSQL 인덱스 재구성, 인덱스 조각화 모음 MSSQL 인덱스 재구성, 인덱스 조각화 모음 인덱스 조각화 모음이 필요한 이유. 인덱스 생성 후 해당 테이블에 데이터 변경이 가해져 페이지에 빈 공간이 생기거나 페이지들의 순서가 맞지 않게 된다. 인덱스 조각화가 심하면 조회시 성능 저하, 불필요한 공간 차지 등이 발생한다. 해결방법에는 인덱스 재구성 or 인덱스 조각화 모음이 있다. 인덱스 재구성 장점 : 효과 가장 좋음 단점 : 서비스 중단 발생 인덱스 조각모음 장점 : 서비스 무중단 단점 : 완벽한 조각모음 아님 특정 테이블 인덱스 재구성 특정 테이블 인덱스 조각화 정도 확인 쿼리 테이블로 보기 DBCC SHOWCONTIG (테이블명) WITH TABLERESULTS 한번에 보기 DBCC SHOWCONTIG (테이블명)특정 테이블 인덱스 재구성 쿼..
NodeJS & Selenium으로 구글 이미지 크롤링 NodeJS & Selenium으로 구글 이미지 크롤링 개인 플젝하면서 AI학습데이터를 위해 이미지가 필요한 일이 생겼다. 내가 주로 애용하는 언어는 Nodejs라서 한참 구글링해서 nodejs로 크롤링하는 예제들을 찾아봤으나 내가 찾은건 google custom search api를 이용해 하는 방법 뿐이었다. 이 방법의 단점은 하루에 100건이상 API를 이용시 돈을 지불해야한다!! 그래서 Selenium으로 긁어오자라고 생각했고, 다시 Selenium으로 검색했으나 역시 파이썬에서 유명한 Selenium이라 그런지 파이썬으로 클롤링하는 예제는 많았지만 (파이썬은 그냥 설치해도되지만 일반적으로 버전관리 위해서 pyenv 설치하고 등등... 이거 한 번 쓰려고 설치하고하기 귀찮기에...) 아쉽게도 No..

반응형