차이 10

Blocking, non-blocking, sync, async 간략한 정리와 합쳐 사용하기

Blocking, non-blocking, sync, async 간략한 정리와 합쳐 사용하기간단한 정리Blocking작업이 완료될 때 까지 호출한 쓰레드가 대기한다.Non-blocking작업이 완료되지 않아도 쓰레드가 대기하지 않는다.즉, 응답이 돌아오지 않아도 다른 작업을 할 수 있다.Sync작업이 완료될 때 까지 호출한 함수의 실행을 블로킹.제어권 반환 XAsync작업이 완료되기 전에 제어권을 반환하여 호출한 함수의 실행을 블로킹하지 않는 방식.뭐 이렇다고 한다.이렇게 보면 뭔소리야? 싶은데 조금 더 상세히 알아보자.세부적인 차이저 둘의 차이는 결국 "호출된 함수" 와 "호출한 함수" 에서 온다고 생각한다.Blocking / Non-blocking이 둘은 호출한 쪽이 대기하는지 여부가 중요하다.즉, ..

이론 정리 2024.06.24

HTTP methods(멱등성, safe, post requestbody 검색, patch-put차이 등등..)

먼저 글을 시작하기 전에 몇가지 내용을 설명하려 한다. Http methods가 뭔데 브라우저가 서버로 데이터를 전달하는 방법이다. 보통 이는 request header부분에 명시된다. 멱등성 멱등성이란, 여러 번 연산을 수행해도 동일한 결과를 보장하는 성질을 뜻한다. 이게 수학적으로 보면 f(f(x)) = f(x) 인 경우 멱등법칙을 만족한다는 것이다. Safe Safe Methods인지 아닌지를 판단하는 것으로, 서버의 상태를 변경시키지 않는 HTTP 메서드들을 뜻한다. 말하자면 해당 메서드가 실행되었을 때에 상태가 변경되는지를 의미한다. REST Api 알다시피 REST api에서 우리는 get, post, put, patch, delete, HEAD, OPTIONS 와 같은 여러 메소드를 사용한다..

이론 정리 2023.01.08

RBAC과 ABAC 기초 정리

RBAC(Role-Based access Control)이란 접근이나 작업에 대한 권한을 역할에 따라 결정한다. 여기서 역할은 보통 부서 , 위치 , 연공서열 , 담당 업무 등등... 이다. 역할이 정의되면 다음에 대한 권한을 할당할 수 있다. 액세스 무엇에 접근할 수 있을지? 운영 무엇을 읽고, 무엇을 작성할 수 있을지? 파일을 생성하거나 삭제할 수 있을지? 세션 시스템에 얼마나 오래 머무를 수 있을지? 로그인은 언제 작동하고 언제 만료되는지? ABAC(Attribute-Based Access Control) 접근이나 작업에 대한 권한을 사용자, 리소스 속성 또는 환경에 따라 결정한다. 권한을 다음과 같이 할당할 수 있다. 사용자 사람의 직급과 연공서열에 따라서 등등.. 리소스 속성 파일유형, 만든사람..

이론 정리 2022.08.18

Java에서 기본 타입과 참조 타입의 차이

Java에서 기본 타입과 참조 타입의 차이 기본 타입(Primitive Type)이란? == 원시 타입 우리가 실제로 데이터 값을 저장할 때에 사용하는 값이다. 정수형 int, long, short, byte ... 실수형 float, double 문자형 char 논리형 boolean 참조 타입(Reference Type)이란? 이름에서 알 수 있듯, 객체의 번지를 참조하는 타입이다. 즉 객체의 주소를 저장하고, 이를 참조하여 사용하는 타입이라 할 수 있다. String, Long, Integer ... 배열, Enum, 클래스, 인터페이스 등을 사용해서 선언한 변수는 메모리 값을 가지게 되는데, 이런 애들을 참조 타입이라 한다. 둘 간의 간단한 차이 저장 장소의 차이 기본 타입은 스택 영역에, 참조 타..

이론 정리/java 2022.05.15

List와 Set의 차이점, 활용

List랑 Set의 차이가 뭘까?? 그리고 둘의 차이점에서 어떤 활용이 가능할까?? 이에 대해 알아보려고 한다. 1. List는 순서가 존재하고 Set은 순서가 없다. 예전글에서 LinkedList와 ArrayList의 차이를 알아보았다. 여기서 중요한 내용중 하나로 나온것이 바로 '순서’이다. List는 순서를 가지며, 데이터가 이 순서에 맞추어 쌓아진다. 코드를 통해서 확인해보자 public class Main { public static void main(String args[]) { ArrayList fact = new ArrayList(); fact.add("ryoo"); fact.add("chan"); fact.add("is"); fact.add("genius!"); fact.add("He")..

이론 정리/java 2022.04.06

abstract class와 interface에 관하여

abstract class 이름에서 알 수 있듯, 추상 클래스는 선언만 하고 실제 구현부는 작성하지 않은 상태로 남겨둔 클래스이다. 추상 클래스는 다음과 같은 특징을 갖는다. new메소드를 사용하여 객체를 직접 생성할 수 없다. 구현부가 실제로 없기 때문에 자식 클래스에서 구현하게 된다. 그리고, 이 구현은 무조건 이루어져야 한다. 이 메소드 내에는 추상 메소드가 존재하며, 이 메소드를 자식 클래스에서 구현한다. 추상 클래스는 간단히 말하자면 미완성 설계도라고 생각하면 된다. 예를 들어 개, 고양이, 소, 말, 돌고래 라는 동물들이 있는 경우 추상 클래스로 동물을 선언해주면 동물이 갖는 공통의 특성을 아래에서 하나씩 사용할 수 있다. 동물(추상 클래스) 걷기 뛰기 숨쉬기 이 뛰는 방식, 걷는 방식, 숨쉬..

이론 정리/java 2022.04.06

JAVA에서 ArrayList와 LinkedList에 관해, 그리고 vector

JAVA에서 ArrayList와 LinkedList에 관해, 그리고 vector ArrayList클래스 java의 Collection중 하나이다. ArrayList는 기존 자바 List와 달리 동적으로 크기가 할당된다. ArrayList는 java 메모리의 주소를 사용하여 데이터를 저장시킨다. 실질 ArrayList의 내부는 배열의 형태를 갖고 있기 때문이다. 그렇기 때문에 데이터를 검색할 때에도 바로 검색할 수 있다. 알아보기 쉽게 표현하자면 다음과 같다. 이런 식으로 각각의 data들이 하나씩 존재한다. 그럼 여기서 값을 추가하려면 어떻게 될까? 이런 식으로 새로운 값을 넣어주려면, 저 노란 색의 데이터가 들어가기 위해 뒤의 값들을 하나하나 옮겨주어야 할 것이다. 해당 위치를 찾아가서 값을 넣어준 뒤..

이론 정리/java 2022.02.26

java에서 String & StringBuffer & StringBuilder에 관해

java에서 String & StringBuffer & StringBuilder에 관해 String 먼저 java에서 String을 쪼개어 보면 이렇게 나온다. String -> final char[] 이걸 보면 자바에서 string은 final인 char의 배열로 선언되어 있다. 즉, String의 경우는 문자를 선언하게 되면 이것이 final형식으로 불변객체로 선언되게 된다. String에서 +연산자를 사용해 본 적은 있어도, -연산자롤 사용해 본 사람은 없을 것이다. 이는 String의 경우는 String pool영역에 있는 불변 객체이기 때문이다. 그렇다면 +연산자는 된다면.. String에 어떠한 값을 더하면 어떻게 될까? String str = "hell"; str += "o"; str += ..

이론 정리/java 2022.02.25

JSP에서 include 두 가지 방식(지시자, 액션태그)의 차이 및 활용

먼저 include를 사용하면 원하는 파일을 기존 파일에 삽입시켜 사용할 수 있다. jsp파일이나 jspf파일을 include하면 된다. jspf란 Java Server Page Fragment의 약자로 JSP의 일부분(조각)으로 다른 JSP파일에 포함되도록(include)만들어졌다. 반복적으로 사용되는 것을 jspf파일로 만들어서 사용한다. 이를 사용하는 이유는 include용 파일들을 더 잘 구분하기 위해서이다. 지시자 호출한 페이지 내에 include되는 페이지의 소스가 그대로 복사된다. 즉 해당 코드를 가져와서 처리한다. 액션태그 include한 페이지로 넘어가서 해당 페이지의 처리가 완료된 후 기존 페이지로 돌아간다. Include 지시자 액션 태그 처리방법 소스의 삽입 해당 include파일의..

쿠키와 세션의 개념, 차이와 사용법 정리 + 어플리케이션

쿠키 쿠키란 http프로토콜에서 웹 브라우저에서 서버로 데이터를 요청하면, 서버 측에서는 로직을 수행한 후에 데이터를 웹브라우저에게 응답함. 그리고 서버는 웹브라우저와의 관계를 종료한다. 이 때 쿠키를 사용하면 연결이 끊겼을 때 어떤 정보를 지속적으로 유지할 수 있다. 쿠키는 서버에서 생성해서 클라이언트측에 정보를 저장한다. 이후 서버에 요청할 때 마다 쿠키의 속성값을 참조/변경할 수 있다. 4kb의 용량을 가지며, 최대 300개까지 데이터 정보를 가질 수 있다. 쿠키 전달 과정 javax.servelt.http패키지의 Cookie클래스를 사용하여 쿠키 생성 해당 쿠키에는 웹 브라우저 판별용 정보가 포함되어 있음. 쿠키 속성 설정 웹 서버가 요청에 응답할 때 response객체에 저장 사용자 브라우저 저..