그 외 공부

문제 상황 엔티티의 속성을 수정, 저장 후 수정사항이 반영되었는지 확인하기 위해 재조회할 때 변경 내용이 반영되지 않은 채로 데이터가 조회되는 상황이 발생했다. 보다 구체적을 설명하면, 엔티티를 Soft delete하고 난 후 Repository를 통해 다시 해당 객체를 조회했을 때, 조회가 되지 않도록 @Where 처리를 해놓았으나, 실제론 해당 데이터가 여전히 조회됐다. // Book 엔티티 @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Where(clause = "state != 'DELETED'") public class Book { @Id @GeneratedValue(strategy = GenerationType.IDEN..
문제 상황 스프링 + JPA에 MySQL을 연결해 사용하는 상황에서 “Group”이라는 엔티티를 정의한 후, yml 파일의 jpa.hibernate.ddl-auto 설정을 create로 하여 엔티티 정보에 따라 테이블을 jpa가 자동으로 생성하도록 처리해주었다. spring: jpa: hibernate: ddl-auto: create # 테이블 자동 생성 database-platform: org.hibernate.dialect.MySQL5InnoDBDialect database: mysql 하지만 서버를 켰을 때, SQL syntax error로 인해 “group” 테이블을 생성하는데 실패했다는 메시지를 뿜으며 테이블이 제대로 생성되지 않았다. org.hibernate.tool.schema.spi.Com..
오늘 오전 미뤄놨던 MAC OS Monterey 업데이트를 한 후, 진행 중인 프로젝트의 로컬 서버를 가동하려는데 얘가 갑자기 가상환경에 설치된 패키지들을 읽어들이지 못했다. ModuleNotFoundError: No module named 'decouple' pip freeze를 해도 패키지를 읽어들이지 못했고, git도 정상적으로 작동하지 않았다. 아마 git이 작동하지 않으니 패키지들 또한 정상적으로 불리지 못하는 상황인 것 같았다. 자세히 보니 터미널에 xcrun: error: invalid active developer path 라는 에러가 찍혀있었고, 검색해본 결과 매번 OS 업데이트 직후 빈번히 발생하는 문제란다. 해결방법은 생각보다 간단했다. xcode-select --install 터미널..
CORS란? 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 출처(Origin): https://developer.mozilla.org/ko/docs/Web/HTTP/CORS 교차 출처 리소스 공유 (CORS) - HTTP | MDN 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라 developer.mozilla.org..
Crontab? 크론탭은 특정 파일이 특정 시간에 정기적으로 실행될 수 있도록 도와주는 유틸이다. 매일 특정 시간에 실행시켜야 하는 파일이 있다면 크론탭을 통해 서버에 올려놓고 사용하는 식이 대부분이다. 명령어 # 크론탭 작업 목록 crontab -l # 크론탭 수정 crontab -e # 크론탭 작성 내용 삭제 crontab -r 작성 크론탭을 사용할 때는 파일이름과 해당 파일이 동작할 시간을 함께 작성해준다. 아마 초기 작성시에는 사용할 편집기를 고르게 하는데 nano든 vim이든 본인이 편한 걸로 사용해주자. * * * * * /home/mydir/someFileToExecute.sh * 은 첫 번째부터 - 분 (0~59) - 시 (0~23) - 일 (1-31) - 월 (1~12) - 요일 (0~7..
링크드 리스트 정리 https://seongonion.tistory.com/20?category=867075 링크드 리스트의 구현 및 연산 - 파이썬(Python) 링크드 리스트의 구현 (Node, __init__, __str__) 링크드 리스트를 구현하기 위해선, 각각의 데이터와 다음 데이터에 대한 주소(레퍼런스)를 저장할 '노드' 객체가 필요하다. class Node: def __init__(self, data. seongonion.tistory.com 우선, 단방향 링크드 리스트를 클래스를 통해 간단히 구현해보자. class Node: def __init__(self, data): self.data = data self.next = None 각 노드들은 data와 next를 속성으로 가질 수 있다...
프로세스와 스레드의 차이 프로그램(Program) 특정 작업을 위해서 실행할 수 있는 파일 (코드의 묶음) 보조기억장치에 저장되어 있음 (디스크 등) 정적인 형태 →디스크에 저장되어 있는 binary파일을 프로그램이라고 보면 된다. 프로세스(Process) 운영체제로부터 메모리를 할당 받아 실행 중인 프로그램 실행되면 주기억장치에 데이터가 적재됨 (RAM) 동적인 형태 → 프로그램이 RAM에 적재되어 실행중인 상태인 것을 프로세스라고 할 수 있다. 프로세스의 구성 요소 (Process Control Block) 1) PID (Process ID) 프로세스를 식별할 수 있는 고유번호 2) Process State 해당 프로세스가 현재 어떠한 상태인지를 나타내는 정보로, Ready, Waiting/Block..
HTTPS HTTPS란? HTTP 프로토콜의 보안버전 - S(Secure) HTTP의 약점 암호화가 되지 않은 평문 통신으로, 도청이 가능하다. 통신하려는 상대를 확인하지 않는다 HTTP의 약점을 보완하기 위해선 암호화가 필요하다 🔑 암호화 알고리즘 1. 대칭키 암호화와 복호화에 동일한 키를 사용하는 것 대칭키의 장점 송신자와 수신자가 동일한 키를 가지고 있기 때문에, 암호화 - 복호화 과정이 단순하며 속도가 빠르다. 대칭키의 단점 어쨌든 송신자와 수신자 간 키 교환이 이루어져야한다. 키 교환 과정에서 키가 노출되면 암호가 무력해진다. 수신자와 송신자가 늘어날수록 그만큼 관리해야할 키가 하나 씩 증가해 관리가 어려울 수 있다. 2. 비대칭키(공개키) 암호화와 복호화에 다른 키를 사용하는 것 비대칭키의 장..
SeongOnion
'그 외 공부' 카테고리의 글 목록 (2 Page)