분류 전체보기
Java - 값이 null,공백 등 Blank인지 확인하기
Spring(스프링)또는 Java 언어로 값을 입력받았는데 이게 정상적인 값인지 확인을 하고 싶을 때가 있다. 그럴 땐 어떻게 해야할까? 이 때 직접 메서드를 만들어주면 된다. StringUtils 클래스 활용 예시는 아래와 같다. White Space란? white space는 공백, 스페이스, 탭, 줄바꿈, 백스페이스 등을 의미한다. CharSequence란? char값을 읽을 수 있는 시퀀스이다. 마크업 문자를 사용해서 변형과 가공이 가능한 문자열이다. Character.isWhitespace(char ch) 메서드란? 말 그대로 white space인지 확인하여 true 또는 false로 결과를 내준다. 매개변수 타입은 char 타입으로 넣어줘야한다. https://blog.jiniworld.me..
로그인, 로그아웃에는 무슨 HTTP 메소드를 써야할까?
일단 먼저 HTTP에 대해 간단하게 보자. HTTP 메소드 종류 1. GET : 리소스 조회 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)으로 전달 메시지 바디를 사용할 순 있지만, 지원하지 않는 곳도 많아서 권장X 2. POST : 요청 데이터 처리, 주로 등록에 사용 메시지 바디를 통해 서버로 요청 데이터 전달 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능 수행 (만능) 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용됨 3. PUT : 리소스를 전부 교체할 때 리소스를 대체하고, 없으면 생성 (새로운 것으로 덮는다) 클라이언트가 리소스를 식별하여, 리소스 위치를 알고 URI 지정 (POST와 차이점) 4. PATCH : 리소스 부분 변경 (리소스가 존재..
JPA 객체지향 쿼리 언어 소개
JPA는 다양한 쿼리 방법을 지원한다. JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 대부분 JPQL, QueryDSL로 해결한다. JPQL SQL을 추상화한 객체 지향 쿼리 언어이다. SQL과 문법이 유사함. (SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원) JPQL은 엔티티 객체를 대상으로 쿼리를 수행함. (SQL은 데이터베이스 테이블을 대상으로 쿼리를 수행함) SQL을 추상화했기에 특정 DB 문법에 의존하지 않음. List result = em.createQuery("select m from Member m where m.username like '%kim..
Kotlin(코틀린) - Inheritance(상속)
https://kotlinlang.org/docs/inheritance.html Inheritance | Kotlin kotlinlang.org Inheritance(상속) 모든 클래스들의 최상위 부모 클래스는 Any 모든 클래스는 기본적으로 final class로 처리되어 기본적으로 상속이 불가능 상속이 가능한 클래스로 정의하려면 open 키워드를 사용해야한다. open class Base // Class is open for inheritance 부모 클래스를 지정하기 위해서는 class header 뒤에 콜론을 적고 부모 클래스의 header를 적는다. (기본 생성자 포함) 만약 부모 클래스가 기본 생성자를 가진다면 자식의 기본 생성자에서 부모 클래스를 반드시 초기화해야 한다. open class ..
Kotlin(코틀린) - Classes(클래스), Constructor(생성자)
https://kotlinlang.org/docs/classes.html Classes | Kotlin kotlinlang.org Kotlin(코틀린) 공식문서를 참고하여 학습해보자. Classes(클래스) kotlin 클래스는 class 키워드로 사용된다. class Person { /*...*/ } 클래스 선언은 class name, class header(매개변수, 기본 생성자 및 기타 사항 지정) 및 중괄호로 묶인 class body(바디)으로 구성된다. header와 body는 선택사항이다. 클래스에 body가 없으면 중괄호를 생략해도 된다. class Empty Constructor(생성자) 코틀린은 하나의 필수 Primary Constructor(기본 생성자)와 하나 이상의 Secondary..
JPA 프록시 (즉시로딩, 지연로딩)
Member를 조회할 때 Team도 함께 조회해야 할까? 만약 Member와 Team이 연관관계로 맺어져있다. 이 때, Member를 조회하면 JPA는 Team까지 조회하게 된다. 위 코드처럼 member와 team을 함께 출력하거나 사용하는 메서드가 있을때는 전부 조회하는 것이 좋다. 하지만 member만 사용하는 메서드라면 굳이 team까지 조회해야 할까? 이것은 불필요한 성능을 사용하게 되는 것이다. 지연로딩 LAZY 사용해서 프록시로 조회 그렇다면 불필요한 성능을 피하기위해서 전부 조회하지않으려면 어떻게 해야할까? 바로 지연로딩 LAZY를 사용하는 것이다! Member와 Team이 다대일 관계로 맺어져있는데 이때 FetchType.LAZY 를 사용하는 것이다. 위 사진처럼 동작을 수행한다고 했을때..
RSA 암호화 알고리즘이란?
🚀 RSA 암호화 알고리즘이란? 공개키 암호 시스템 중 하나 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘 전자상거래에서 가장 흔히 쓰이는 공개키 알고리즘 암호화 알고리즘의 핵심은 큰 정수의 소인수 분해가 어렵다는 점을 이용하여 암호화 암호화할 때는 마음대로지만 해독할 때는 아니다. 🚀 그렇다면 공개키(public key)는 무엇일까? 대칭키 암호화와 달리 암호화와 복호화에 서로 다른 키를 사용하는 암호화 방식 공개키 암호화는 공개키와 비밀키(private key)를 사용하여 암호화 및 복호화하는 기술 공개키를 더 알아보기전에 대칭키를 간단하게 알아보자 1. 대칭키 기법 비밀키 하나만 사용 암호화 및 복호화에 같은 키(대칭)를 사용하는 암호화 알고리즘 키를 안전하게 교환하는 것이 가장 중요한 부분..
OSI 7계층 예시
빨간색 화살표대로 길찾기를 검색하면 아래로 내려가서 물리까지 온 후 다른 컴퓨터로 전송이 되서 역순으로 가게 된다. 아래는 예시이다. 응용 : 길찾기를 검색한다. 프레젠테이션 : 정보를 암호화 한다. 세션 : 상대방에게 보낼 수 있는지 인증을 체크한다. 트랜스포트 : TCP 또는 UDP 어느것으로 할지 결정한다. TCP는 신뢰성 있는 통신, UDP는 신뢰성은 없지만 빠른 통신 네트워크 : IP로 목적지까지의 경로를 결정한다. 데이터링크 : 직접 연결된 컴퓨터와 통신 물리 : 광케이블로 데이터 전송 데이터 링크 계층에서는 하나의 공유기에 여러대의 컴퓨터가 있다면 누구에게 전송해야하는지 모르는데 이것을 특정해주는 계층이다. 데이터링크 ~ 트랜스포트 계층을 나타내는 그림이다. 1~4계층은 데이터를 전달하는 것..