2025/05 28

[DB] Row Lock과 Table Lock

DB락 : DB에서 동시에 여러 사용자가 데이터를 처리할 시 데이터 무결성과 경쟁 조건 방지를 위해 락을 사용함.→ 크게는 Row Lock, Table Lock으로 나뉜다. 1. Row Lock (행 단위 잠금) : 데이터 테이블에서 특정 행만 잠그는 방식- 이 행을 제외한 나머지 행에 대해서는 사용자가 자유롭게 작업 가능 ■ 장점1) 병행 처리 효율적 : 동시에 여러 트랜잭션이 다른 행을 수정 가능2) 데이터 충돌 최소화3) 큰 테이블에서도 최소한의 락 범위 ■ 단점 1) 락을 관리하는 오버헤드가 커짐2) 데드락 발생 가능성이 높아진다. ■ 예시 -- 특정 회원의 정보만 업데이트 (해당 행만 락)UPDATE member SET name = '홍길동' WHERE member_id = 1001;2. Ta..

IT/DB 2025.05.31

REST API란?

발표 후 해당 질문을 받았는데.. 순간 머리가 멍해져서 대답을 못했다. GET/POST를 떠올리면 됐는데.. 1. REST란?REpresentational State Transfer의 약자.웹의 자원을 URL로 표현하고, 그 자원에 대한 행위는 HTTP 메서드로 표현하는 아키텍처 스타일을 뜻함. 자원(Resource) → /users, /posts, /products 등의 URI로 표현행위(Method) → GET, POST, PUT, DELETE 등의 HTTP 메서드 사용→ 설계 원칙!2. REST API란? : REST 아키텍처 원칙을 따르는 API→ API란? 프로그램 간 통신 창구를 의미하고, REST API란? REST 원칙을 따르는 URL + HTTP 메서드로 구성된 API를 말한다.3. RE..

웹 개발 2025.05.30

[Network] Brute-force 공격이란?

비밀번호 암호화를 공부하면서 암호화 알고리즘을 공부하게 되고,, 점점 파다가 알아본 해킹 방식들에 대해 정리하고자 한다.Brute-force 공격이란? Brute-force 뜻 = 무작정 "힘으로 밀어붙이는 방식" 모든 가능한 비밀번호 조합을 하나하나 대입해서 맞힐 때까지 시도하는 공격을 의미한다. → BCrypt는 해당 공격에 강하다. 왜냐하면 암호화 속도가 느리게 설계되었기 때문이다.Brute-force 공격은 모든 조합을 하나하나 대입해서 맞힐 때까지 시도해야 하기 때문에 빠르게 여러 값을 대입하여 해킹을 시도한다. 그러나 BCrypt의 암호화 속도가 느리기 때문에 해커가 수천 번 시도하는 것이 시간/비용 증가로 인해 현실적으로 힘들다. 즉, 연산을 일부러 느리게 만들어 공격 비용을 현실적으로 어..

IT/CS 2025.05.29

[FullStack] 상품 품절 시 상품 목록에서 품절 이미지 띄우기

// 모듈화 메서드 // call by reference로 리스트 반환 안해도 됨 // 개별 상품 // 품절 시 이미지 경로 변경하여 Map 세팅 기능 private void returnApplyProductSingleSoldoutImgPathMapList(List> response, List list) { // 품절된 상품의 이미지를 품절 이미지로 교체하는 메서드 // List> response : JSON형태로 보내기 위한 Map 구조 리스트. // 결과값을 담는 리스트이다. // 키-값 형태로 되어있는데, JSON 형태처럼 값을 담은 리스트 // List list : 단품 상품 리스트. DB에서 가져온 상품 목록이다. final String soldoutImgLink =..

웹 개발 2025.05.28

[Front] AJAX 콜백 함수 형식

error: (xhr, status, error) => { console.error("AJAX 요청 에러 발생", xhr.status, status, error); printSweetAlert("error", "서버에 문제가 발생했습니다.", "지속될 시 관리자에게 문의하세요.", "error.do");}=> "AJAX 요청이 실패했을 때 실행되는 함수" success는 요청이 성공했을 때, error는 실패했을 때 호출된다. 매개변수 의미xhrXMLHttpRequest 객체 (실제 요청과 응답을 담고 있음)status텍스트 상태 (예: "error", "timeout" 등)error에러 내용(에러 메시지 또는 예외 정보) 1) xhr은 HTTP 상태코드를 출력함 (404, 500 등)2) statu..

웹 개발 2025.05.26

[Front] dataType: "text" vs dataType: "json" 차이

dataType: "text" vs dataType: "json" 차이 항목textjson의미그냥 문자열 그대로 받음JSON 형식의 데이터 객체로 받음자동 파싱X (직접 파싱해야 함)O (response가 JS 객체로 자동 변환됨)속도더 빠름 (단순 데이터 전송)약간 느림 (파싱 과정 있음)용도"중복입니다" 처럼 간단한 텍스트 응답{ "isDuplicate": true } 같이 구조화된 응답용량작음큼직관성사람이 보기 쉬움JS 코드에서 다루기 쉬움 아이디 중복 검사에서 text로 주고 받은 이유는 간단한 텍스트 응답을 위해서이다. 아이디 중복 여부만 판단하는 거라 구조화된 JSON이 필요 없고, JSON보다 가볍고 빠르다.즉, 단순한 true/false 판단만 필요했기 때문에, 더 빠르고 가벼운 text..

웹 개발 2025.05.25

[Front] DOM요소와 제이쿼리

1. DOM 요소란?DOM은 Document Object Model의 줄임말로, HTML 태그 하나하나를 자바스크립트로 다룰 수 있도록 만든 문법이다. 다음과 같은 코드가 있을 떄는, document.getElementById("memberId").value; // → "abc123"를 통해 ab123이라는 값을 가져올 수 있다.즉, HTML 태그 하나 == DOM 요소 하나이다.2. $(" "): 제이쿼리 문법.$("#memberId")는 document.getElementById("memberId")와 동일한 의미이다.즉, DOM 요소 = HTML 태그를 자바스크립트로 다룰 수 있게 만든 객체$(“#id”) = jQuery로 특정 HTML 요소를 선택하는 방법요소 선택document.getEleme..

웹 개발 2025.05.24

[Spring Boot] @Primary와 @Qualifier의 차이

@Primary와 @Qualifier 차이@Primary는 같은 타입의 빈을 사용할 시 한 객체에게 우선순위를 부여한다. @Bean 으로 생성하는 객체들 중 같은 클래스(타입)인 빈이 있다면, 스프링은 어느 것을 빈으로 생성하여야 하는지 알 수 없기 때문에 컨테이너를 띄우지 못하고 NoUniqueBeanDefinitionException 이라는 예외를 던진다.그렇기에 찾고자하는 객체에 @Primary를 붙여준다. @Qualifier는 @Component가 객체의 자료형을 참고하기 때문에 같은 타입을 사용하는 빈이 있을 경우 객체의 이름까지 참고하여 해당하는 빈을 찾는다.

웹 개발 2025.05.22

[CS지식] 인터넷과 네트워크

※ 인터넷과 네트워크 네트워크 + 네트워크 = 인터넷 인터넷: 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크 PAN, LAN, MAN, WAN, 5G/4G ※ 프로토콜이란? :  TCP, UDP, IP, HTTP, SMTP, FTP, OSPF, BGP ※ 계층(layer) 응용계층, 전송계층, 네트워크계층, 링크계층, 물리계층 ※ 네트워크 구성 라우터, 스위치, NIC, 프록시 서버, 공유기 ※ 네트워크 알고리즘  라우팅 알고리즘 ※ 원하는 정보를 웹 서버로부터 가지고 오는 방법 웹 브라우저, DNS ※ 웹 서버로부터 웹 페이지를 가져오려면?① 내 컴퓨터에 웹 브라우저가 설치되어 있어야 한다.크롬, 익스플로러, 사파리 등 ② 내 컴퓨터가 네트워크(인터넷)에 접속해 있어야 한다.접속망..

IT/CS 2025.05.21