728x90

Study 7

[Dart] Dart 언어 가이드 살펴보기

플러터를 이용해 앱개발을 할 수 있는데, 플러터는 dart 언어로 개발해야한다.기초를 알아보자!  1. Basic Dart Programvoid studyPrint(int num) { print('이것은 $num'); // 콘솔 출력}void main() { var num = 111; studyPrint(num);} 다른 언어와 매우매우매우 비슷하다.  void는 return해줄 값이 없는 경우 사용.int는 정수를 나타내는 자료형print는 콘솔에 내용을 출력할 때 사용.main은 앱이 시작되기 위한 최상위 함수이다.var는 자료형을 지정하지 않고 변수를 선언하는 방법이다.  거의 java나 javascript와 유사하다.    2. Keywordsabstract else importshow as..

[Kotlin] 코틀린 + 스프링부트로 단숨에 완성하는 초강력 JWT 인증 시스템!💡 보안과 성능을 모두 잡아라!🔥

코틀린 스프링부트로 JWT구현해봤다. 제목은 어그로 ㅎㅎ GPT가 만들어준..   1. 코틀린으로 프로젝트 생성한다.라이브러리는dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-validation") implementati..

DB 동시성 제어하는 방법 알아보기

DB 시스템에서 동시성을 제어하는 방법에 대해서 알아보자 !!!   대표적인 동시성 제어 방식은 MVCC(Multi Version Concurrency Control)Lock-Based Concurrency Control이 있다.  1. MVCCMVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식이다.각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않는다. 데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있다.트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못한다. 읽기 작업 시 잠금을 사용하지 안항 높은 동시성을 제공한다.읽기 작업..

개발/ETC 2025.01.06

스레드, 프로세스, 코어 알아보기

스레드, 프로세스, 코어를 알아보자 !!!   1. 개념 - 스레드란?일반적으로 "프로세스 내에서 실행되는 하나의 흐름"을 의미.컴퓨터 프로그램에서 스레드는 프로그램 내에서 동시에 실행되는 여러 작업을 처리하는 단위.스레드는 멀티태스킹을 지원하며, 하나의 프로세스 내에서 여러 작업을 동시에 처리하는 데 사용.프로세스는 하나 이상의 스레드를 포함할 수 있다.  - 프로세스란?운영 체제에서 실행 중인 프로그램을 의미.프로세스는 실행 중인 프로그램에 의해 사용하는 메모리 공간과 시스템 자원들을 포함하는 실행 단위.프로세스는 프로그램 코드뿐만 아니라 그 코드가 실행되는 동안 필요한 데이터, 자원, 상태 정보 등을 포함.  - 코어란?컴퓨터의 중앙 처리 장치(CPU) 내부에서 실제로 명령을 처리하고 실행하는 물리..

개발/ETC 2025.01.03

[Spring] 동기, 비동기 차이

동기와 비동기 차이에 대해서 알아보자 !    1. 개념동기와 비동기는 호출하는 함수의 작업 완료를 기다리는지 여부의 차이가 있다.  함수 A가 동기로 함수 B를 호출하면 A는 B의 작업이 완료될 때까지 기다려야 한다.  따라서 작업이 순차적으로 진행된다.  반면, 함수 A가 비동기로 함수 B를 호출하면 A는 B의 작업 완료를 신경 쓰지 않고 따로 동작한다.  따라서 작업이 순차적으로 진행되지 않는다.    2. 블록킹과 동기의 차이동기 호출에서는 호출된 함수가 작업을 완료할 때까지 호출한 함수가 기다린다.즉, 작업이 순차적으로 진행되는 것을 의미한다.  반면, 블로킹은 함수가 호출된 후, 호출한 함수의 결과를 기다리기 위해 실행을 멈추는 상태를 의미한다.즉, 제어권이 반환되지 않고 대기하는 상황이다. ..

TCP 3-way handshake 알아보기

TCP 3-way Handshake에 대해서 알아보자 !!! TCP 3-way handshake는 TCP/IP 네트워크에서 안정적이고 연결 지향적인 통신을 설정하기 위해 사용되는 절차다.이 절차는 클라이언트와 서버 간에 신뢰할 수 있는 연결을 설정하기 위해 세 개의 메시지(세그먼트)를 교환하는 과정을 포함한다. 1.우선 클라이언트는 서버에 연결을 요청하는 SYN 세그먼트를 보낸다.이 세그먼트에는 초기 순서 번호(Sequence Number)와 윈도우 크기(Window Size) 정보가 포함되어 있다.      2.이후 서버는 클라이언트의 요청을 수락하고, SYN과 ACK 플래그가 설정된 세그먼트를 클라이언트에 보낸다. 이 세그먼트는 서버의 초기 순서 번호와 클라이언트의 초기 순서 번호에 대한 응답(ACK..

개발/ETC 2024.12.29

공유 락, 배타 락 차이

공유 락 배타 락을 알아보자!!  1. 개념유 락과 배타 락은 비관적 락(Pessimistic Lock)의 데이터 일관성과 무결성을 위해 사용하는 락 유형이다. - 공유 락공유 락은 읽기 락(Read Lock)이라고 부르며, 공유 락이 걸린 데이터는 읽기(SELECT)연산만 가능하며, 쓰기(UPDATE, DELETE)는 불가능하다.공유 락이 걸린 데이터에 대해서 다른 트랜잭션에서도 공유 락을 획득할 수 있지만, 배타 락은 획득할 수 없다.즉, 공유 락을 사용하면 트랜잭션 내에서 조회한 데이터가 변경되지 않는다는 것을 보장한다. SELECT * FROM table_name WHERE id = 1 FOR SHARE;  - 배타 락배타 락은 쓰기 락(Write Lock)이라고 부르며, 배타 락을 획득한 트랜잭..

개발/ETC 2024.12.24
728x90