분류 전체보기(68)
-
[Jupyter Lab] WSL ubuntu에 주피터랩 설치 및 실행 가이드
wsl로 개발하는 이유...윈도우 PC에서 개발 할때 리눅스 환경에 테스트하기 가장 좋은 방법은 wsl을 활용하는 거다 파이썬으로 작업할 때 라이브러리 중 리눅스 호환이 안되거나 예상치 못한 버그가 발생하는 것을 로컬에서 캐치하고자 할때 wsl에 jupyterlab을 설치해 사용하면 편하게 리눅스환경에서 로컬테스트가 가능하다. 1. apt 업데이트sudo apt update && sudo apt upgrade -y 2. 파이썬 및 pip 설치sudo apt install python3 python3-pip -y ++ 설치확인 cmd : -> python3 --version -> pip3 --version 3. 주피터랩 설치pip3 install jupy..
2025.04.03 -
[RESTful API] 민감한 파라미터 통한 데이터 조회시 GET vs POST
보안RESTful한 개발을 위해 공부할때 처음으로 배운게 요청 method에 따른 API 역할이었다.get은 조회, post는 서버 작업으로 알고 있었지만 실제 프로젝트에 들어가면 이를 지키기가 쉽지 않다. 그 대표적인 예시 상황이 파라미터로 넣어줄 값이 외부에 노출되면 안될 민감한 데이터인 경우다.예를 들어 사용자의 개인정보, api-key 등을 get 요청으로 쿼리스트링으로 보내줄 경우 url에 노출되고 길이 제한으로 암호화 역시 어렵다. 또한 GET 요청은 default로 캐싱 대상이 될 수 있어 브라우저 캐시에 남아 유출 위험이 있다. https를 사용할 경우 MITM(Man-in-the-Middle)같은 공격은 방지 할 수 있어 어느정도 보안성은 보장되지만 그래도 여전히 url이 브라우저 주소창..
2025.01.13 -
[SQL] Join 개념 정리 - mysql 기준
1. INNER JOIN (교집합): SELECT 보고싶은 컬럼명 FROM 조회하고 싶은 메인 테이블 INNER JOIN 비교하고 싶은 테이블 ON 비교 조건# 핸드폰과 PC이 같은 같은 제조사인 기기를 찾을 때SELECT *FROM PHONE AS AINNER JOIN PC AS BON A.CONPANY_NAME = B.CONPANY_NAME;=> 만약, 두개 테이블의 row가 각각 100개 씩 있고 COMPANY_NAME이 곂치는 row가 10개있을때 조회 결과 row는 10개이다. 2. LEFT JOIN ( 부분집합 + 남은 부분 ): SELECT 보고싶은 컬럼명 FROM 조회하고 싶은 메인 테이블 LEFT JOIN 비교하고 싶은 테이블 ON 비교 조건# 핸드폰의 정보를 모두 보고 싶은데 그중..
2025.01.12 -
[mybatis] XML 파싱 에러 발생
"The content of elements must consist of well-formed character data or markup."자바에서 DB 제어를 할때 많이 쓰이는 것중하나가 mybatis이다. xml을 쓸지 그냥 interface mapper로 해결할지는 선택이지만 xml 을 사용할 경우 위와 같은 에러를 볼 수 있다. xml도 html과 유사한 태그형 마크업 언어이기 때문에 sql 쿼리에서 쓰이는 기호들이 xml 파일 형식을 어긋나게 하는 경우가 있는데 이때 저런 에러가 발생한다. 주로 같은 부등호로 조건 연산을 할때 나오는 에러이다. 저 부등호가 xml상의 태그로 인식되기 때문에 에러가 발생하는 것이다. 이럴 때 해결방법은 주로 2가지가 있다. 1. 엔터티 문자 사용부등호나 다른..
2025.01.02 -
[SpringBoot] 대규모 데이터 처리 (1) - mysql insert
Big Data회사가 AI 회사다 보니 대규모 데이터 셋을 다룰 때가 종종 있다.이번엔 문서의 본문 내용이 포함된 대략 6만건의 데이터 셋을 insert 해야되는 mission 을 받았다. 한번에 insert 할 경우 여러 문제가 발생할 가능성이 있고 이 데이터를 처리하다가 다른 본 서비스에 지장을 줄 우려가 있었기에 local 환경에서 여러 시도를 해보고 그 결과를 남긴다. 1. Batch Insert대규모 데이터 셋을 넣어야할 프로젝트는 Mybatis를 사용중이었다.mySql은 foreach를 통해 다량의 row를 한번에 insert 할 수 있도록 지원하고 있기에 이것을 먼저 시도해봤다. 부하를 얼마나 버틸지 몰라 부분부분 나눠 테스트를 진행했다.처음은 100건을 요청했다 -> Success!!다음은..
2024.12.22 -
[Nest.js] class 생성
pnpm 으로 관리시// 생성할 class 지정하고 생성할 파일이름을 적으면된다pnpm nest generate module userpnpm nest generate service userpnpm nest generate controller user 이렇게 커맨드를 치면 파일이름으로 쓴 이름(예시대로면 user)으로 디렉토리가 생성되고그 안에이름.controller.ts | 이름.service.ts | 이름.module.ts이렇게 생성된다.
2024.11.09