리눅스의 역사과 여러가지 배포판
·
Linux
유닉스 (Unix)개발 및 역사1969년: 미국 AT&T 벨 연구소에서 켄 톰슨(Ken Thompson), 데니스 리치(Dennis Ritchie) 등이 개발 시작.초기 언어는 어셈블리어.간결한 설계와 효율성을 강조한 운영체제.1971년: C언어를 사용하여 유닉스를 재구축.고급 언어로 개발된 최초의 운영체제.이식성(Portability)이 뛰어나 다양한 하드웨어에서 사용 가능.분화 과정:상용 유닉스: AT&T의 유닉스 상용화 노력.BSD: 캘리포니아 버클리 대학에서 발전한 오픈소스 유닉스 계열.기본 개념모듈화: 운영체제의 핵심 기능(커널)과 유틸리티 도구를 분리하여 설계.다중 사용자 및 다중 작업 지원: 한 시스템에서 여러 사용자가 동시에 작업 가능.GNU 프로젝트출범 배경1983년: 리처드 스톨만(Ri..
QueryDSL 소개
·
Spring
http://querydsl.com/http://querydsl.com/static/querydsl/5.0.0/reference/html_single/http://querydsl.com/static/querydsl/5.0.0/apidocs/QueryDSL이란?QueryDSL은 타입 안전하고 가독성 높은 쿼리를 작성할 수 있도록 도와주는 Java 기반의 라이브러리입니다.SQL과 유사한 문법으로 JPQL, SQL, JPA와 함께 사용할 수 있습니다.왜 QueryDSL을 사용할까?타입 안전성:쿼리를 작성할 때 컴파일 시점에 오류를 잡아줍니다.문자열 기반 쿼리(JPQL)와 달리 런타임 오류를 방지합니다.가독성:쿼리를 코드로 작성하므로 가독성이 뛰어나고 유지보수가 용이합니다.동적 쿼리 작성:조건에 따라 쿼리를 동..
Spring Data JPA - Pageable
·
Spring
Pageable?Pageable은 Spring Data JPA에서 제공하는 페이징 처리를 위한 인터페이스입니다.데이터를 한 번에 모두 가져오지 않고 페이지 단위로 나누어 조회하기 위해 사용됩니다.Pageable의 주요 개념페이지 번호 (Page Number): 가져올 페이지의 인덱스를 의미합니다.페이지 번호는 0부터 시작합니다. (1페이지 = 인덱스 0)페이지 크기 (Page Size): 한 페이지에 포함될 데이터의 개수입니다.정렬 (Sort): Pageable 객체에 정렬 기준을 포함할 수 있습니다.Pageable의 주요 인터페이스와 클래스Pageable: 페이징 정보를 추상화한 인터페이스입니다.PageRequest: Pageable 인터페이스의 구현체로, 페이지 번호와 크기, 정렬 정보를 제공합니다...
Spring Data JPA - Sort
·
Spring
Sort란?Sort는 데이터 조회 시 특정 필드를 기준으로 정렬할 수 있도록 도와주는 Spring Data JPA 기능입니다.정렬 방식은 크게 두 가지입니다:오름차순(Ascending): 작은 값 → 큰 값 (ASC)내림차순(Descending): 큰 값 → 작은 값 (DESC)2. Sort의 주요 개념Sort 객체: Spring Data JPA의 Sort 클래스를 사용하여 정렬 기준과 방식을 설정합니다.필드 기준: 정렬은 엔티티의 필드(예: name, age, createdAt)를 기준으로 적용됩니다.다중 필드 정렬: 여러 필드를 조합해서 정렬할 수 있습니다. 예: 나이 기준 내림차순 → 같은 나이에서는 이름 오름차순3. Sort 사용법 단계별 이해1. 단일 필드를 기준으로 정렬하기오름차순 정렬Sort..
REDBOX(헌혈증 기부 시스템) - JWT 정리
·
Spring Security/JWT
1. JWT 기반 인증/인가 시스템 구축JWTFilter@Overrideprotected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { String accessToken = request.getHeader("access"); if (accessToken == null) { filterChain.doFilter(request, response); return; } try { jwtUtil.isExpired(accessToken); ..
Spring Data JPA - JPA Query Methods
·
Spring
JPA Query Methods :: Spring Data JPAJPA Query Method개념JPA Query Method는 메서드 이름만으로 쿼리를 생성하는 Spring Data JPA의 강력한 기능입니다.개발자는 메서드의 이름 규칙을 따라 작성하기만 하면, Spring Data JPA가 자동으로 JPQL(Java Persistence Query Language) 쿼리를 생성해 실행합니다.장점SQL 작성 필요 없음: 메서드 이름만으로 쿼리를 작성할 수 있습니다.자동화된 쿼리 생성: Spring Data JPA가 자동으로 JPQL을 생성해줍니다.간결하고 직관적: 쿼리의 목적을 메서드 이름으로 표현하므로 코드의 가독성이 높아집니다.JPA Query Method 작성 규칙기본 형식findBy 또는 rea..
Spring MVC 아키텍처 계층 구조 + Entity와 DTO를 변환하는 이유
·
Spring
1. 구조 단계별 설명Client사용자 또는 클라이언트가 요청을 보냅니다.웹 페이지나 모바일 애플리케이션이 클라이언트 역할을 합니다.Controller역할: 클라이언트의 요청을 받고 적절한 서비스를 호출합니다.DTO 사용: 클라이언트가 보낸 데이터를 DTO (Data Transfer Object)로 받아 처리합니다.주요 기능:요청(Request) 데이터 검증Service 계층에 데이터 전달처리 결과를 클라이언트에게 반환Service역할: 비즈니스 로직을 담당합니다.Controller에서 넘어온 DTO를 처리하고 Entity로 변환해 Repository로 전달합니다.ServiceImpl: 비즈니스 로직의 세부 구현을 처리하는 클래스입니다.DAO (Repository)DAO (Data Access Objec..
ModelMapper 라이브러리
·
Spring
https://modelmapper.org/https://mvnrepository.com/artifact/org.modelmapper/modelmapperModelMapper란?ModelMapper는 객체 간 매핑(객체 변환)을 간편하게 처리할 수 있는 Java 라이브러리입니다. 주로 DTO(Data Transfer Object)와 Entity 간의 변환에 사용되며, 이를 통해 코드를 간결하고 효율적으로 작성할 수 있습니다.왜 ModelMapper가 필요한가?DTO와 Entity의 변환은 반복적이고 귀찮은 작업이 될 수 있습니다.수동 변환 시 코드가 복잡하고 가독성이 떨어질 수 있습니다.ModelMapper의 특징자동 매핑객체의 필드명이 동일하면 자동으로 매핑해줍니다.예: DTO의 name 필드 → En..
코틀린 핵심 개념 정리
·
Kotlin
자바의 문제점 & 코틀린으로 해결NullPointerException : Nullable 타입과 안전한 연산자 도입.장황한 코드 : 간결하고 직관적인 문법 제공.데이터 클래스 : 단순 클래스 작성을 위한 data 키워드 제공.함수형 프로그래밍 : 더욱 강력하고 완전한 지원.1. 코틀린의 Nullable 처리 및 장점1.1 Nullable 처리 방식코틀린은 자바의 NullPointerException(NPE) 문제를 해결하기 위해 다양한 연산자를 제공한다. 1. Safe Call( ?. ) : 객체가 null일 경우 null을 반환하며 연산을 수행하지 않는다.var str: String? = nullprintln(str?.length) // null 반환, NPE 방지 2. Elvis 연산자( ?: ) :..
War, Jar 란? 그리고 차이점
·
Java
1. Jar(Java ARchive)파일정의: JAR 파일은 여러 개의 Java 클래스 파일, 메타 데이터, 리소스 파일 등을 하나의 파일로 묶은 아카이브 파일목적: Java 클래스와 관련 리소스를 패키징하여 재사용 가능한 라이브러리나 실행 가능한 애플리케이션을 생성사용처: Java 라이브러리, 스탠드얼론 Java 애플리케이션, 의존성 패키지 등확장자: .jar2. WAR (Web Application aRchive) 파일정의: WAR 파일은 웹 애플리케이션을 패키징하기 위한 파일 포맷이다. Java 클래스, JSP, 서블릿, XML, 라이브러리, 정적 웹 리소스 (예: HTML, CSS, JavaScript) 등 웹 애플리케이션 구성 요소를 포함한다.목적: 웹 애플리케이션을 하나의 단위로 패키징하고 배..