본문 바로가기
728x90
반응형

분류 전체보기106

SSL 실행 에러: AttributeError: module 'ssl' has no attribute 'wrap_socket' 쉽게 말해 파이썬 버전이 바뀌면서 생기는 문제이다. 파이썬 3.7부터 ssl.wrap_socket() 함수는 deprecated가 되었으며 ssl.SSLContext object 를 만들고 ssl.SSLContext.wrap_socket 함수를 호출하는 것이 권고되었다.아직  ssl.wrap_socket() 함수를 쓰고 있다면 이는 보안에 취약하고 해당 함수는 서버의 호스트네임을 검증하지 않는다고 한다. CWE-295: Improper Certificate Validation에 위배되기 때문에 바꿔줘야 한다. 그럼 원래 어떻게 되어있었고 어떻게 바꿔야 하나? runsslserver.py 를 열고 (보통 에러메세지에 어느 파일에서 에러가 발생했는지 나오기 때문에 클릭하면 들어가진다) 대충 아래처럼 되어있던.. 2024. 5. 28.
pip install 중에 발생하는 코덱 에러 : UnicodeDecodeError 'cp949' codec 간단하게 말해 setup.py를 읽다가 생긴 인코딩 문제로 주로 README.md를 읽다가 발생한다.해결할 수 있는 방법은 다음과 같다. 수동으로 파일을 다운받는다. 예시: https://pypi.org/project/JSON-log-formatter/#files JSON-log-formatterJSON log formatterpypi.org예시로 사용될 라이브러리이다. 위 링크를 들어가게 되면 간단하게 명령어로 다운받을 수도 있지만 수동으로 파일을 다운받을 수도 있다.  파일을 다운받고 그 파일을 열어서 setup.py를 보게 되면 아래와 같은 내용이 있을 것이다.먼저 에러메세지를 보더라도 어느 라인에서 에러가 발생했는지 친절하게 알려주니 그걸 참고해도 좋다. from setuptools import .. 2024. 5. 28.
[QueryDSL] Hexadecimal to Decimal Conversion (데이터 포맷 변환) 언어:  Java 17 사전 설명: 필자의 경우 출력하고자 하는 데이터의 칼럼이 varchar로 되어있음분명 데이터가 숫자임에도 varchar를 쓰는 이유는 유연하다는 특징이 가장 큰데 이러한 이유로 비즈니스에서 주로 varchar 타입이 선호되고 인터페이스에서도 varchar로 선언된걸 자주 볼 수 있음. 특히 16진수와 같은 데이터는 알파벳도 들어가 있기 때문에 varchar로 사용됨. 하지만 varchar, 즉 string은 숫자의 데이터 포맷 변환이 되지 않음. 즉, 데이터 포맷을 변환할 때는 숫자로 변환해야 하고 출력할 때는 문자열로 해야함. 추가로 알아야할 것은 QueryDSL에서 선언된 QClass의 칼럼은 StringPath라고 하는 타입을 갖게되는데이 타입은 실제 값을 주는것이 아니라 말.. 2024. 5. 21.
[JAVA] Zxing 라이브러리로 QR을 만들어보자 언어: Java 17 라이브러리: Zxing 공통 1. 사용하는 빌드 관리도구에 맞게 라이브러리 추가 https://mvnrepository.com/artifact/com.google.zxing/core https://mvnrepository.com/artifact/com.google.zxing/javase 2. QR을 앞단에서 출력하기 위해서는 바이트로 받아야 이미지로 출력할 수 있기 때문에 컨트롤러단에서 Return Type을 아래와 같이 설정해야한다. ResponseEntity 시나리오 1: 앞단에서 이미 QR 이미지로 인코딩 할 데이터가 있는 경우 (예: url) 시나리오 1-1: 테스트를 위해 QR 이미지로 출력 가능한 데이터는 이미 자바단에서 하드코딩이 되어있고 String url = "htt.. 2024. 4. 22.
JPA의 Persistence와 @Transient 이해하기 (feat. EL1008E) : EL1008E: Property or field '문제의 칼럼' cannot be found on ........ - maybe not public or not valid? Transient "일시적인" Temporary의 동의어 JPA에서 언급하는 Persistence "영속성"과 반대되는 개념이다. 영속성이란 사라지지 않는 데이터의 특성이다. 영속성을 갖지 않으면 데이터는 메모리에서만 존재하게 되고 프로그램이 종료되면 모두 사라지게 된다. 우리는 이렇게 영속성을 가져야 하는 데이터를 DB에 저장한다. 그러면 일시적인의 의미를 갖고 있는 저 Transient를 어노테이션으로 썼다는 것은 무엇일까? 메모리에서만 존재해야 하는, 프로그램이 종료되면 사라져도 무방한 목적의 칼럼이라고 볼 수 있다. 예컨데.. 2024. 4. 5.
QueryDSL 다른 조건으로 같은 테이블 여러번 조인하기 QueryDSL을 사용할줄 안다는 가정하에 Repository 구현체에 QClass를 조건의 수만큼 선언하고 선언한 그 QClass의 인스턴스 변수를 가져와 사용하는 것이다. 아래는 조회 예시이다. Q클래스이름 조건1 = new Q클래스이름("조건1"); Q클래스이름 조건2 = new Q클래스이름("조건2"); 조건1과 조건2를 선언했다면 조회를 위해 select에 포함시켜준다. 조건1.원하는칼럼.as("가명"), *여기서 중요한 것은 조건1은 기존 테이블이 아니기 때문에 가명을 써줘야 한다. 이 가명을 통해 앞단에서 select를 해올 수 있다. 예를 들어 테이블1과 공통 테이블2가 있다고 가정해보자. 공통 테이블2의 원하는 칼럼을 테이블1의 칼럼에 삽입하기 위해서 테이블1의 칼럼을 가명으로 선언하는 .. 2024. 4. 5.
도커 & 쿠버네티스 이해하기 도커(Docker)란? 도커를 한 문장으로 요약하면 개발자가 만든 코드가 어느 환경에서도 작동할 수 있게 도와주는 오픈소스이다. 그런데 왜 굳이 Docker일까? 영어로 된 대부분의 기술 용어들은 이름에서 그 뜻을 쉽게 유추할 수 있다. 이를 이해하고 넘어가야 Docker 의 개념을 빠르게 받아들일 수 있다. Dock은 부두이다. Docker는 자연스럽게 부두 노동자가 된다. 부두 노동자들은 부두에서 선박에 물건을 선적하고 양하하는, 하역작업자들이다. 이 부두 노동자들의 도움으로 물건이 선박에 실렸다가 내려지는 것이다. 현대에는 대부분의 물건들이 컨테이너라는 공간에 보관되고 운반 된다. 컨테이너는 왜 쓰는 걸까? 일정한 규격이 있어 싣고 내리기 편하며 독립적이면서도 튼튼하기 때문에 외부 환경에 영향을 거.. 2024. 2. 28.
728x90
반응형