본문 바로가기

Dev50

MySQL) JOIN 예제 테이블을 합칠때는 JOIN을 쓰지만 한테이블에서는 주로 subquery를 사용할 수 있다. 서브쿼리 공부에 필요한 MySQL 예제와 실습 코드 첨부 JOIN : 한번의 SELECT문장으로 2개 이상의 테이블에 있는 컬럼의 정보를 검색하고 싶을 때 사용한다. : JOIN의 종류 1) INNER JOIN - EQUI JOIN = 동등조인 = NATURAL JOIN - NON EQUI JOIN : 조인 대상 테이블의 어떤 컬럼의 값도 일치하지 않을 때 사용 EX) BETWEEN AND , IS NULL, IS NOT NULL, IN, > , 2) OUTER JOIN : 기본 EQU.. 2026. 3. 6.
[CS] 트랜잭션 예외 처리 정리 | Checked Exception, Unchecked Exception Spring 트랜잭션 예외 처리 정리1. 기본 동작Checked Exception발생해도 기본적으로 롤백하지 않음컴파일 시점에 예외 처리를 강제하는 정상 예외 상황으로 간주Unchecked Exception (RuntimeException, Error)발생 시 자동 롤백보통 프로그래머의 실수나 시스템 오류 상황으로 간주Spring은 JDBC, JPA, Hibernate 예외를 DataAccessException (Unchecked) 으로 변환해 일관 처리2. 설정 확장 (@Transactional 속성)rollbackFor : 특정 Checked Exception도 롤백하도록 지정noRollbackFor : 특정 Unchecked Exception에 대해 롤백 제외 가능3. Java EE와 비교CMT (.. 2025. 9. 11.
[CS] 낙관적 락, 비관적 락 - 동시성 제어 주요기법 낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock)은 데이터베이스 트랜잭션에서 동시성 제어를 위해 사용되는 대표적인 기법 여러 트랜잭션이 동시에 동일한 데이터에 접근할 때 발생할 수 있는 충돌을 방지하고 데이터 무결성을 보장하는 것이 목적🔹 낙관적 락 (Optimistic Lock)가정: 데이터 충돌이 자주 발생하지 않는다.데이터를 읽을 때는 락을 걸지 않고 자유롭게 접근한다.트랜잭션이 데이터를 수정하려 할 때, 버전(version) 컬럼이나 타임스탬프 등을 비교해 다른 트랜잭션이 해당 데이터를 변경했는지 확인한다.만약 충돌이 감지되면, 데이터베이스가 아닌 애플리케이션 단에서 롤백하거나 재시도 처리를 수행한다.장점: 락으로 인한 자원 점유가 적어 성능이 우수하다.단점:.. 2025. 8. 20.
[CS] RestfulAPI 설계와 적용방법 알아보기 RESTful API란 ?REST를 기반으로 만들어진 API를 의미REST(Representational State Transfer) 는 자원의 표현을 이용하여 상태를 주고받는 것을 의미. 여기서 자원이란 소프트웨어가 관리하는 모든 것을 의미하며 자원의 표현은 자원을 나타내기 위한 이름을 의미한다. 가령, 서버가 관리하는 주문 데이터는 order 라고 표현할 수 있다. 최근에는 일반적으로 자원의 상태를 나타내기 위해 JSON 포맷을 사용, REST는 네트워크 상에서 클라이언트와 서버의 통신 방식 중 하나이며, HTTP 프로토콜을 사용. 구체적으로는 HTTP URI를 활용하여 자원을 명시하고 HTTP METHOD를 통해 CRUD 연산을 적용하는 것을 의미.API(Application Programming .. 2025. 8. 5.
[CS] 회선(서킷) 교환 방식 VS 패킷 교환 방식 회선 교환 방식(Circuit Switching) 이란 특정 사용자를 위한 회선의 경로를 미리 설정하고 이 경로를 이용해서 호스트끼리 메시지를 주고받는 방식을 의미합니다. 회선 교환 방식은 미리 회선을 설정한다는 점에서 주어진 시간 동안에 전송되는 데이터의 양이 비교적 일정하고 안정적입니다. 다만, 회선 이용 효율이 떨어진다는 단점이 존재합니다. 회선 교환 방식의 대표적인 사례로는 유선 전화망이 있습니다.반면, 패킷 교환 방식(Packet Switching) 은 목적지를 정해두고 메시지를 패킷으로 분할해서 보내고, 목적지에서 패킷을 조립해서 확인하는 방식입니다. 패킷 교환 방식에서 라우터는 주어진 패킷을 최적 경로로 전달하는 핵심적인 역할을 수행합니다. 이러한 특성으로 인해서 경로는 수시로 변경될 수 있.. 2025. 7. 27.
[CS ] CSRF 공격 정처기에 정보보안에서 기존출체 및 요즘 많이 보이고 있는 CSRF 공격요즘 정처기 정보보안파트가 잘 외워지지 않아서 1일 1독 하고 있지만 워낙 생소해서 반복하는수밖에 없다. 이와 비슷한게 응집도 결합도 CSRF 공격이란사이트 간 요청 위조(Cross-site Request Forgery, CSRF) 공격은 사용자가 자신의 의지와 상관없이 공격자가 의도한 행위를 특정 웹사이트에 요청하도록 하는 것을 의미예를 들어, 특정 사용자가 매일메일 서비스에서 로그인을 수행하고 서버는 해당 사용자에 대한 세션 ID를 Set-Cookie 헤더에 담아서 응답합니다. 그리고, 클라이언트는 쿠키를 저장하고 요청마다 자동으로 전달.이러한 사용자를 대상으로 공격자는 악성 스크립트가 담긴 페이지에 접속하도록 유도한다. 유도하는 .. 2025. 6. 24.
[CS] Call By Value | Call By Reference 특정 메서드를 호출하는 경우 인자로 전달하는 방법은 2개 : 값에 의한 호출(Call By Value), 참조에 의한 호출(Call By Reference) 두가지 방법으로 나눠진다. 값에 의한 호출(Call By Value) 은 메서드를 호출할 때, 값 자체를 넘겨주는 방식입니다. 메서드를 호출하는 함수의 변수와 호출된 함수의 파라미터는 서로 다른 변수입니다.반면, 참조에 의한 호출은(Call By Reference) 는 메서드를 호출할 때, 참조를 직접 전달하는 방식입니다. 참조를 직접 전달하기 때문에 호출하는 함수의 변수와 호출된 함수의 파라미터는 동일한 변수입니다. 따라서, 파라미터를 수정하는 경우 그대로 원본에도 영향을 미칩니다.public void foo() { Student stude.. 2025. 6. 2.
[AWS 공부8일차] AWS 고가용성 / 확장성 1. 확장성 : 애플리케이션 또는 시스템이 부하에 맞춰 적절하게 조절  수평적확장: 더 많은수의 인스턴스를 띄우는 방식의 탄력적인 확장 - 인스턴스 요청이 많아지거나 타입을 바꿀때 재부팅할때 신규인스턴스를 띄울때 필요한다.  수직적 확장: 하드웨어 또는 인스턴스의 티어를 올리고 더 많은 리소스를 사용하는 경우  2. 가용성 : 이미 확장성이 확보된 상태여서 연결된 개념이다 서비스를 오래 유지해서 운영  예를 들어 서비스 워크로드 24시간운영등 서비스 가용시간이라는 개념과 밀접한 관계를 가진다.  고가용성    - 가용성이 높다    - 일반적으로 수평적 확장과 밀접한 연관   - 어플리케이션이 2개 이상의 데이터센터 또는 가용영역에서 운영됨 (의왕, 안성) 분산해서 관리  t2 서비스를 올릴때 2core.. 2025. 3. 18.
라우터 / LAN 기본 개념 정리 보호되어 있는 글 입니다. 2025. 3. 14.
[AWS 공부 1일차] - AWS 프리티어 이해하기 1. Root acoount 계정 root account 는 이메일기반으로 만들어진 계정이다 모든 권한을 가지고 있다 2. IAM IAM 사용자를 생성하고 적절한 권한 전달   -AWS 계정내의 사용자 그룹 , 사용자, 사용자의 권한, 리소스에 적용될 정책 관리 IAM 사용자는 각 리전/az에 원하는 서비스를 생성하고 관리할 수 있다. Root Account 는 가입시점에 자동으로 생성 - User 사용자 는 하나의 어카운트를 공유하고 사용하기 위해 나뉘는 사용자  - 그룹은 사용자 만을 포함 3. Console 콘솔이란 웹페이지로 구성된 AWS 리소스들을 관리할 수 있는 서비스 콘솔만으로 AWS 서비스를 관리할수 없다.  AWS CLI라는걸로 같이 관리한다.  - 서비스 생성 및 관리  - AWS CL.. 2025. 3. 11.
[DB접근기술 ] - Mybatis 와 JPA 차이 보호되어 있는 글 입니다. 2025. 3. 6.
자바 기초 문법 배열 주요 정리 _ 모음 https://ko.rakko.tools/tools/78/ 텍스트-10 진수 변환기 / 번역기 : 텍스트를 10 진수로, 10 진수를 텍스트로 | RAKKOTOOLS🔧텍스트를 10 진수로 또는 10 진수를 텍스트로 변환ko.rakko.tools https://mgyo.tistory.com/227 연산자의 우선순위와 결합규칙연산자의 우선순위 "하나의 식(expression)에 연산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행할지를 자동 결정하는 것" 만약, 자신이 원하는 우선순위가 있다면, 괄호()를 사용하면 된다. 즉, 수동mgyo.tistory.com https://itjy2.tistory.com/213 [Java] Random 메소드 / 랜덤숫자 생성Java / Random Random Java에.. 2024. 7. 21.