분류 전체보기 474

[OS] 2. 컴퓨터의 구조와 성능향상 기술 (쉽게배우는 운영체제 2장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 하드웨어의 구성 폰노이만 구조 CPU와 메모리 CPU 구성 레지스터의 종류 운영체제 버스 메모리 보안 컴퓨터 성능 향상 기술 인터럽트 운영체제 병렬 처리 컴퓨터의 기본구성 1.하드웨어의 구성 - 필수장치 : 중앙처리장치(CPU), 메인메모리(RAM) - 주변장치 : 입력장치, 출력장치, 저장장치 ​ 1) CPU와 메모리 CPU : 명령어를 해석하여 실행하는 장치(두뇌) 메모리 : 작업에 필요한 프로그램과 데이터를 저장하는 장소 ​ 2) 입출력 장치 : 외부의 데이터를 컴퓨터에 입력하는 장치 ​ 3) 저장장치 : 속도가 느리지만 가격이 저렴 ​ 4) 메인보드 - cpu와 메모리등 다양한 부품을 연결하는 커다란 판 - 각 부품은 버스로 데이터를..

[OS] 1. 운영체제와 컴퓨터 (쉽게배우는 운영체제 1장)

쉽게배우는 운영체제, 한빛미디어 - 요약 및 공부한 내용입니다. 운영체제란 운영체제의 필요성 운영체제의 역할 운영체제 분류 운영체제 구조 커널의 구성 1. 운영체제 - Operating System : 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게되는 소프트웨어 (컴퓨터 HW 바로 윗단에 설치되는 SW) 운영체제란 사용자에게 편리한 인터페이스를 제공하고 컴퓨터 시스템의 자원을 효울적으로 관리하는 소프트웨어입니다. 임베디스 시스템 or 임베디스 운영체제 CPU의 성능이 낮고, 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 임베디드 시스템 혹은, 임베디드 운영체제 입니다. 2. 운영체제의 필요성 운영체제는 크게 프로그램의 성능 향상 및 자원관리를 담당합니다. [질문] 1) 컴퓨터는 운영체제가..

[Spring] 스프링 순환 참조, 무한 재귀 해결하기 (DTO, JsonIgnore)

jpa 엔티티 일대다 : 다대일 관계 생성시 흔하게 일어나는 순환 참조문제, 이전 프로젝트에서는 뭣도 모르고 @jsonignore로 처리했었는데, 이게 왜 일어나는지 공부해보니, 좋지 않은 방법이였다는 걸 깨달았다,.. JPA에서 순환참조 문제는 이제 알고보니까는, 엔티티를 조회할 떄 발생하는 게 아니라 entity를 json으로 변환할 떄, 즉, Entity To Json serialize할 때 (보통 controller 단)에서 일어나는 문제였다. Entity를 Json으로 변환하면서, 연관된 객체를 다시 Json으로 변환하고, 이 변환 과정에서, 다시 연관된 객체의 연관된 객체를 참조... 참조 지옥,,, 무한 참조,,, 크기가 펑펑펑,, 스프링 무한 순환 참조 문제 해결 방법 @jsonignore..

Spring/Spring Boot 2022.04.20

[Spring] 스프링 엔티티 삭제 시점 히스토리 기록하기 (Soft Delete)

생성시간과, 삭제시간은 jpaAuditing으로 기록이 가능했는데, 삭제시점을 자동을 체크해주고 싶어서 찾아보니 jpaAuditing에는 없었다 흨,,ㅠ 그러다 하이버네이트에서, delete 시점을 체크할 수 있는 @SqlDelete 와 default 조건절을 붙히는 @where 를 발견했다..! Soft Delete ex) `UPDATE table SET delete = 1 WHERE id = 2` 형태로 ROW가 삭제 되지 않고 flag를 통한 제어 하는 방식 delete가 되더라도, 데이터를 지우는게 아닌, column 값을 변경하여, 데이터를 제어하는 방법이다, @SQLDelete Annotation @SQLDelete 어노테이션을 통해, 실제 삭제가 이루어질때 수행 할 쿼리를 적으면 된다. ex..

Spring/Spring Boot 2022.04.20

[Spring err] 스프링 시큐리티 - Consider defining a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' in your configuration.

Parameter 1 of constructor in com.example.zaritalk.service.UserService required a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' that could not be found. package com.example.zaritalk.service; import com.example.zaritalk.domain.user.User; import com.example.zaritalk.domain.user.UserRole; import com.example.zaritalk.dto.SignupRequestDto; import com.example.zaritalk.rep..

Spring/Spring err 2022.04.20

[JPA] Fetch join 과 Join 차이점

fetch join은 불러온 데이터까지 영속성 컨텍스트에 저장하지만 join은 불러온 데이터를 영속성 컨텍스트에 저장하지 않는다...! Fetch Join 조회 주체가 되는 엔티티와 연관 관계의 엔티티(JOIN) 까지 모두 조회하여 영속화한다. 즉, 2개의 엔티티 모두 영속성 컨텍스트로 관리되어진다. 일반 Join 조회 주체가 되는 엔티티만 조회하고 영속화한다. 만약 연관 관계의 엔티티 데이터를 사용해야 할 경우 별도의 조회 쿼리문을 실행 해야 함. FetchType.EAGER 일 경우, 연관 관계의 엔티티를 영속화하기 위해 N번의 쿼리를 발생시킴. FetchType.LAZY 일 경우, 최초 조회시 획득한 id 로 조회를 N번해야함. [참고] https://velog.io/@heoseungyeon/Fet..

Spring/Spring Boot 2022.04.20

[백준] boj 11660 구간 합 구하기 5 - 누적합, dp

구간 합 구하기 5 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 18489 9201 7262 49.101% 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. 입력 첫째 줄에 표의 크기 N과 합을 구..

알고리즘 문제 2022.04.10

[Spring] 스프링 부트 JPA 페이징 성능 개선 - querydsl 페이지네이션(오프셋 페이징, 커서 페이징, querydsl 정렬)

JPA N+1 문제를 해결했으니, 이제 페이지네이션 성능개선을 해볼려고 한다. https://thalals.tistory.com/246 [Spring] 스프링 부트 페이지네이션 (Query, JPA, offset / cursor 페이지네이션) 페이지네이션을 구현해보자!! spring boot 의 JPA를 이용해서 구현을 할 예정이다 페이지네이션을 구하기 위해서는 요롷게 3가지를 생각해 주어야한다. view size : 한페이지에 보여줄 개수 total page : thalals.tistory.com 이전에, 페이지네이션에 대해 공부해 보았을 떄 offset 과 cursor 2가지 방식의 페이지네이션 구현 방법이 존재하고 JPA 페이징 API는 오프셋 기반 방식이라는 것을 확인한 적이 있다. 오늘은, JP..

Spring/Spring Boot 2022.04.10

[Spring/스프링] springboot gradle - XSS 스크립트 오류 해결하기 (with @RequestBody)

프로젝트 댓글에, 누군가 XSS 공격을 해놓았다.. 껄껄껄 이론으로만 알던걸 직접 당해보니 기분이 새롭고 상쾌하다 해결하자!! 1.XSS 란 2. Spring에서 Xss 해결하기 1. XSS 란 Crooss-site Scripting으로, 클라이언트가 입력값으로 악의적인 스크립트 문을 삽입하여, 개발자의 의도대로 동작하지 않게하는 공격을 말합니다. 바로 아래처럼,,..!! ㅠㅠ 2. Spring에서 Xss 해결하기 XSS 공격을 예방하는 방법으로는, 특정문자 치환하기 특정문자 입력시 검사 후, 입력받지 않게하기 모든 body태그에 C:out 입력하기.. 등등 하지만! 네이버에서 이 기능등을, lucy xss servlet filter라는 정의해둔 라이브러리가 존재한다, 이걸 프로젝트에 적용해서 사용해보자..

Spring/Spring Boot 2022.04.05

[백준] boj 2407 조합

코테 후,, 조합을 빠르게 계산하는 방법을 고민해보았다,,ㅠ 1. 재귀 => 너무 느림 2. 반복문 3. dp 조합 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 21031 7120 6145 39.160% 문제 nCm을 출력한다. 입력 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) 출력 nCm을 출력한다. 예제 입력 1 복사 100 6 예제 출력 1 복사 1192052400 [코드] package solved.Class; import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) ..

알고리즘 문제 2022.04.03