전체 글85 자바 - 스트림 Java Stream개요스트림(Stream)은 데이터를 처리하기 위한 연속적인 흐름을 추상화한 인터페이스입니다.스트림의 동작 단계생성(Creation)가공(Intermediate Operations)소비(Terminal Operations)예시:List names = Arrays.asList("Kim", "Park", "Lee", "Choi");names.stream() // 생성 .filter(name -> name.length() > 3) // 가공 .forEach(System.out::println); // 소비스트림의 특징지연 연산 (Lazy Evaluation)Stream stream = names.stream() .f.. 2024. 12. 9. 스프링 - 스프링 스프링 빈(Spring Bean)의 이해빈이란?스프링 IoC 컨테이너로 관리되는 객체를 의미합니다.빈 등록 방법컴포넌트 스캔을 통한 자동 등록@Componentpublic class UserService { // ...}설정 클래스를 통한 수동 등록@Configurationpublic class AppConfig { @Bean public UserService userService() { return new UserService(); }}빈과 의존성 주입IoC 컨테이너에서 관리되는 빈을 통해 해당 객체가 필요한 곳에 자동으로 의존성을 주입합니다별도의 주입 과정을 거치지 않아도 되므로 의존성 관리가 자동화됩니다의존성 주입 방법// 1. 생성자 주입 (권장)@Servicepublic class Use.. 2024. 12. 9. HTTPS 와 SSL HTTPS와 SSL/TLS1. HTTPS (Hypertext Transfer Protocol Secure)개요HTTP에 SSL/TLS를 사용한 보안 강화 버전서버-브라우저 간 암호화된 통신을 제공HTTP Body를 암호화 (Header는 암호화하지 않음)장점데이터 도난/탈취 방지웹사이트 신뢰도 상승검색 엔진 최적화(SEO) 가산점데이터 무결성 보장2. SSL/TLS (Secure Socket Layer/Transport Layer Security)개요서버와 브라우저 간 보안을 위한 프로토콜공개키/개인키와 대칭키를 혼합하여 사용현대에는 SSL의 후속 버전인 TLS를 주로 사용암호화 방식A. 대칭키 암호화동일한 키로 암호화/복호화장점: 빠른 암호화/복호화 속도단점: 키 공유 시 탈취 위험송신자 .. 2024. 12. 9. 스프링 - HTTP 파라미터 처리 방식 스프링 MVC는 웹 애플리케이션 개발에서 HTTP 요청을 처리하는 다양하고 유연한 방법을 제공합니다. 특히 HTTP 요청 파라미터를 처리하는 방식은 개발자가 자주 마주하는 중요한 부분인데, 상황과 요구사항에 맞게 적절한 방식을 선택할 수 있습니다. 요청 파라미터를 처리하는 주요 방식들을 실제 HTTP 요청 예시와 함께 살펴보겠습니다.1. @RequestParam 사용GET /hello?name=kim&age=20@GetMapping("/hello")public String hello(@RequestParam("name") String name, @RequestParam("age") int age) { return "hello " + name; // "hello kim.. 2024. 12. 6. 트랜잭션 동작 방식과 스프링의 트랜잭션 동작 방식 데이터베이스 연결과 트랜잭션 관리1. DB 드라이버애플리케이션과 데이터베이스 간의 통신을 담당JDBC 드라이버를 통해 DB와 커넥션을 맺고 애플리케이션에 반환2. 커넥션 풀 (Connection Pool)성능 향상을 위해 커넥션을 미리 생성하고 관리HikariCP와 같은 커넥션 풀 라이브러리가 대표적장점:커넥션 재사용으로 리소스 절약설정과 사용의 분리로 관리 용이동시성 처리를 위한 별도 스레드 관리3. 트랜잭션 (Transaction)3.1 기본 개념데이터베이스의 데이터 정합성을 보장하는 작업 단위ACID (원자성, 일관성, 고립성, 지속성) 준수 필요기본적으로 autocommit 모드로 동작3.2 트랜잭션 격리와 락동시성 제어를 위한 락(Lock) 메커니즘 제공SELECT FOR UPDATE 등으로 명.. 2024. 12. 6. DB N-N관계 풀어내기 예제 데이터베이스의 다대다(N:M) 관계 설명1. 다대다 관계란?한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 관계를 가질 수 있는 구조예: 학생과 강좌의 관계한 학생이 여러 강좌를 수강할 수 있음한 강좌에 여러 학생이 등록할 수 있음2. 관계도[Student 테이블] [StudentCourse 테이블] [Course 테이블]- student_id (PK) ────┐ - student_id (FK) ┌──── - course_id (PK)- name │ - course_id (FK) │ - course_name- email 1│ - enrollment_date .. 2024. 12. 6. 웹 서버와 WAS 웹서버와 WAS의 차이점웹서버 (Web Server)주요 기능HTTP 프로토콜 기반의 정적 컨텐츠(HTML, CSS, 이미지) 처리기본적인 보안, 인증, 컨텐츠 압축, 캐싱 제공대표 제품Apache HTTP ServerNginxMicrosoft IIS특징빠른 처리 속도와 높은 안정성단순한 구조로 인한 낮은 리소스 사용정적 컨텐츠 처리에 최적화WAS (Web Application Server)주요 기능동적 컨텐츠 생성 및 비즈니스 로직 처리데이터베이스 연동 및 트랜잭션 관리웹 컨테이너 및 EJB 컨테이너 제공대표 제품Apache TomcatJBoss/WildflyWebLogicWebSphere특징복잡한 비즈니스 로직 처리 가능다양한 기능 제공 (DB 풀링, 트랜잭션 등)상대적으로 높은 리소스 사용핵심 차이.. 2024. 12. 5. 스프링 MVC 구조 스프링 MVC 핵심 컴포넌트1. DispatcherServlet정의: 스프링 MVC의 핵심 컨트롤러로, 모든 HTTP 요청을 처리하는 중앙 서블릿특징:싱글톤 패턴으로 생성됨웹 요청의 진입점이자 요청 처리의 중심요청을 받아 적절한 핸들러로 라우팅주요 역할:요청 수신핸들러 매핑뷰 렌더링예외 처리추가 설명:웹 애플리케이션 시작 시 단 하나만 생성모든 요청의 진입점으로서 URL 매핑부터 응답 생성까지 전체 흐름 통제2. HandlerMapping정의: 요청된 URL에 매핑되는 핸들러(컨트롤러)를 찾는 인터페이스특징:싱글톤으로 관리됨여러 구현체 존재 (RequestMappingHandlerMapping 등)주요 역할:URL 패턴과 컨트롤러 메서드 간 매핑요청에 적합한 핸들러 결정추가 설명:애플리케이션 시작 시 @.. 2024. 12. 5. 이전 1 2 3 4 5 6 7 ··· 11 다음