분류 전체보기101 [Spring/Java] CORS란? 해결법은? CORS란? Cross-Origin Resource Sharing = 교차 출처 리소스 공유 정책 자세히는 추후 말하겠다. 출처(Origin)란? URL의 Protocol + Host + Port를 의미하는데, 간단히 말해선 웹 페이지나 리소스의 출처를 나타내는 개념이다. 그러면, 아무래도 보안 때문에 같은 출처끼리의 리소스를 공유하는 정책이랑 다른 출처끼리의 리소스를 공유하는 정책이 각각 존재할 것 같다는 생각이 든다. 1. SOP (Same-Origin Policy)동일 출처 정책은 웹 브라우저가 동일한 출처에서만 리소스를 공유하도록 제한하는 보안 정책이다. 기본적으로 같은 출처끼리는 리소스를 공유할 수 있도록 허용된다. 만일, 다른 출처끼리도 제약 없이 공유가 허용된다면, 해커가 개인정보를 가로챌 .. 2024. 7. 7. [Spring/Java] 동시성 제어 통한 게시물 좋아요 및 댓글 수 관리 (비관적 락, 반정규화, 세마포어) 상황게시물에 좋아요 버튼을 누르면 좋아요 수가 1씩 증가하거나 감소해야하고, 댓글을 작성하거나 삭제하면 댓글 수가 1씩 증가하거나 감소해야 했다. 그런데, 그런 요청이 있을 때마다 좋아요 댓글 수 컬럼 값을 1씩 증가하거나 1씩 감소시키게 된다면, 충돌의 위험이 있었고, 데이터 무결성에 문제가 생길 수 있었다. 그래서 충돌을 방지하여 데이터 무결성을 높이는 락을 사용해야 했다. 하지만, 동시성 처리가 많은 상황에서는 락 경합이 빈번하게 발생하여 락 대기 시간이 길어질 수 있었고, 데이터베이스의 성능이 저하될 수 있었다. 해결방법 [ 1. 별도의 테이블을 사용하여 성능 향상 ]좋아요와 댓글에 대한 테이블을 따로 만들고, 생성이 될 때마다 데이터를 하나씩 추가시키고 삭제할때마다 해당 데이터를 하니씩 삭제했다.. 2024. 7. 7. [백준/C++] #2529 부등호 (Back Tracking) 문제https://www.acmicpc.net/problem/2529 구상주어진 부등호 사이사이에 0~9 범위의 숫자를 넣어야했다. 즉, 부등호 조건에 맞는 0~9로 이루어진 순열을 만들어야 했다. 근데, sign 배열의 크기도 작고, 숫자의 범위로 0~9로 작기에 순열을 만들때 완전탐색으로 backtraking하면 될 것 이라 판단했다. 풀이 + 코드backtracking의 일반적인 기본 구조는 재귀 함수 안의 if-for문이다. for문 안에서 특정 횟수만큼의 답을 구하거나 답을 구할 수 있도록 반복하는데, for문 안에서 재귀호출을 하며 가능한 경우를 전부 따진다. if문에서는 답이 될 수 있는 조건을 충족하면 답을 따로 저장한다. 세세한 조건은 if문을 사용하는데, for문에서 재귀 돌기 전에.. 2024. 7. 7. [Sping/Java] JPQL vs QueryDSL JPQL(Java Persistence Query Language)과 QueryDSL은 둘 다 Java 애플리케이션에서 데이터베이스 쿼리를 작성하는 데 사용되지만, 접근 방식과 사용 용도에서 차이가 있다. 1. JPQL (Java Persistence Query Language) JPA의 일부로, 쿼리를 테이블이 아닌 엔티티 객체를 대상으로 작성하는 정적인 객체지향 쿼리 언어이다. JPQL은 SQL과 유사한 문법을 사용하지만, 데이터베이스 테이블 대신 Java 엔티티 객체를 다루며, 필드나 속성을 통해 데이터베이스 레코드를 조회하고 조작할 수 있다. 이를 통해 데이터베이스와의 상호작용을 객체지향적으로 처리할 수 있게 해준다.@Entitypublic class Board { @Id @Gener.. 2024. 7. 7. 이전 1 ··· 17 18 19 20 21 22 23 ··· 26 다음