본문 바로가기
반응형

public void static main91

[토비의스프링] 9장-스프링 프로젝트 시작하기 1. 스프링의 기본 특징플랫폼 호환성: 스프링은 다양한 플랫폼에서 사용 가능하지만, **자바 엔터프라이즈 플랫폼(Java EE)**에 최적화되어 있습니다.주요 사용 사례:웹 클라이언트: HTTP를 통해 접근하는 웹 애플리케이션.백엔드 DB 연동: 데이터베이스와 상호작용하는 애플리케이션에 적합.핵심 목표: 의존성 주입(Dependency Injection)과 제어의 역전(Inversion of Control, IoC)을 통해 유연하고 확장 가능한 애플리케이션 개발 지원.2. 스프링 개발 생산성과 품질 향상을 위한 도구필요성: 스프링 개발의 생산성과 품질을 높이기 위해서는 적절한 도구가 필수적.권장 도구:SpringIDE 플러그인: Eclipse 같은 IDE에 통합 가능한 플러그인으로 스프링 설정 및 빈(B.. 2025. 2. 28.
[토비의스프링] 8장-스프링이란 무엇인가? 🌸 스프링의 철학과 목표 깊이 파헤치기✨ 스프링의 본질 한눈에 보기철학: 자바의 객체지향 원리를 살려 복잡성을 단순화.목표: POJO 기반으로 엔터프라이즈 개발을 쉽게.특징: 오픈소스, 모든 개발 영역을 아우르는 프레임워크.해결: 비즈니스와 기술적 요구의 충돌을 해소.🛠️ 스프링을 이해하는 핵심 포인트1️⃣ 스프링이란?정의:오픈소스 소프트웨어: 전 세계 개발자가 기여하며 발전.애플리케이션 프레임워크: 웹, DB, 배치 등 모든 기술을 통합 지원.상세 설명:단순한 라이브러리가 아니라, 애플리케이션 전체를 설계하고 실행할 수 있는 기반 제공.예: 스프링 부트는 설정을 최소화해 개발 속도를 높임.역할: 자바 개발자가 엔터프라이즈 시스템을 만들 때 필수적인 도구와 구조 제공.2️⃣ 엔터프라이즈 개발의 복잡성.. 2025. 2. 28.
[토비의스프링] 7장-스프링 핵심 기술의 응용 🌟 DI와 스프링으로 더 나은 코드 설계하기✨ 핵심 개념 한눈에 보기DI의 힘: 객체 연결을 유연하게, 코드 설계를 깔끔하게.스프링의 도구: 반복 작업 줄이고 생산성 높임.목표: 변경에 강하고 유지보수 쉬운 코드 만들기.철학: 객체지향 설계를 실현하는 기반 제공.🛠️ 설계 단계별 상세 정리1️⃣ 변경 가능한 데이터 외부화왜 필요한가?:SQL, 설정값 같은 텍스트 데이터가 코드에 섞이면 수정할 때마다 컴파일 필요 → 비효율적.어떻게 하나?:외부 리소스 사용: .sql 파일, .properties, DB 테이블에 저장.가져오기: 런타임에 동적으로 로드.구체적 예시:SQL 쿼리를 queries.sql 파일에 저장 → SqlLoader 클래스로 읽기.@Value("${db.query}")로 .properti.. 2025. 2. 28.
[토비의스프링] 6장-AOP 트랜잭션과 DI/AOP로 깔끔한 코드 만들기핵심 개념 한눈에 보기트랜잭션 분리: 비즈니스 로직과 환경 의존 코드를 분리해 책임을 명확히 한다.DI(의존성 주입): 객체 간 유연한 연결로 코드 변경을 최소화한다.AOP: 트랜잭션 같은 공통 기능을 모듈화해 관리한다.프록시: 비즈니스 로직에 부가 기능을 추가하는 중개자 역할.테스트: 로직과 환경이 분리되어 단위 테스트가 쉬워진다.트랜잭션 설계 단계별 정리트랜잭션 코드 분리왜?: 비즈니스 로직과 트랜잭션 처리(시작, 커밋, 롤백)를 분리하면 책임이 명확해진다.어떻게?:트랜잭션 처리를 전담하는 별도 클래스를 만든다.비즈니스 로직과 동일한 인터페이스를 구현한다.DI를 통해 클라이언트 코드 수정 없이 트랜잭션 기능을 추가한다.분리의 장점비즈니스 로직이 외부 리소스(.. 2025. 2. 26.
[토비의스프링] 5장-서비스 추상화 DAO와 트랜잭션 관리: 결합도 낮추고 단일 책임 원칙 지키기1. DAO와 서비스 계층의 결합도 낮추기DAO(Data Access Object)는 데이터베이스와의 상호작용을 담당하지만, 기술 변화(예: JDBC → Hibernate)가 생기면 서비스 계층 코드에도 영향을 줄 수 있습니다. 이를 방지하려면:인터페이스 활용: DAO에 인터페이스를 정의해 구현체를 분리.DI(의존성 주입): Spring 같은 DI 프레임워크를 사용해 DAO 구현체를 동적으로 주입.결과: 서비스 계층은 DAO의 구체적인 기술에 의존하지 않게 되어 결합도가 낮아짐.2. 트랜잭션과 비즈니스 로직트랜잭션 필요성: DAO를 사용하는 비즈니스 로직은 데이터 무결성을 보장하기 위해 단위 작업(트랜잭션)이 필요.트랜잭션 경계설정: 트랜잭션의.. 2025. 2. 21.
[토비의스프링] 3장-템플릿 3장에 나오는 개념을 가볍게 정리하였다.  템플릿 패턴코드에서 변경이 거의 일어나지 않으며 일정한 패턴을 유지하는 부분(고정적인 부분) 을 자유롭게 변경되는 부분(가변적인 부분) 으로부터 독립시켜 효과적으로 활용하는 방법이다.템플릿 패턴을 활용하면 공통 로직을 재사용할 수 있으며, 중복 코드를 줄이고 유지보수성을 높일 수 있다.템플릿 패턴과 관련된 개념로컬 클래스 (Local Class)특정 메서드 내부에서만 사용되는 중첩 클래스.외부 클래스의 변수를 접근할 수 있다.중첩 클래스 (Nested Class)클래스 내부에 정의된 클래스로, 외부 클래스와 논리적으로 강한 관계를 가지는 경우 사용된다.정적 중첩 클래스(Static Nested Class)와 인스턴스 중첩 클래스(Inner Class)로 나뉜다... 2025. 2. 21.
[DataModeling]Change Detection, CUSUM 등등 으아아ㅏ 시험대비 공부를 해봅시다 변화 감지(Change Detection)시스템에서 변화가 발생했는지 확인하는 과정이다. 주로 시계열 데이터를 사용하여 시간에 따른 패턴 변화를 추적하고, 이를 기반으로 변화가 일어났는지 파악한다. 정상 범위를 벗어난 이상치를 찾아내거나, 변화가 중요한 의미를 가질 경우 조치를 취할 수 있도록 돕는다.적용행동 필요 여부 확인기계 유지보수: 기계가 고장이 날 가능성을 예측하고, 이를 미리 파악하여 유지보수 계획을 세울 수 있다.지구 온난화: 기후 변화에 대한 패턴을 추적하여 온난화가 계속되는지 확인하고, 이에 맞는 대처 방안을 모색할 수 있다.판매 추세 분석: 판매 패턴을 분석하여 판매가 급증하거나 급감하는 추세를 파악하고, 이로 인한 전략적 결정을 내릴 수 있다.행동의 .. 2025. 2. 10.
[DataModeling] 데이터 준비 부터 이상치 탐지 및 처리까지 데이터 준비의 중요성모델을 학습시키기 전에 데이터를 적절히 처리하지 않으면, 알고리즘이 잘못된 패턴을 학습하거나 성능이 저하될 수 있다.신용 점수(credit score): 데이터가 300 ~ 850 범위에서 존재한다면, 특정 값들이 너무 큰 영향을 미칠 수 있다.일일 기온(daily temperature): 같은 섭씨 온도라도 지역마다 다른 영향을 미칠 수 있다.주식 가치(stock price): 주가가 천 단위인 경우와 십 단위인 경우 데이터 범위 차이가 크면 왜곡이 발생할 수 있다.이런 문제들을 해결하기 위해서 데이터를 정규화(normalization)하거나 표준화(standardization) 하는 것이 중요 하다.주요 데이터 준비 문제점데이터를 그대로 사용하면 모델의 성능이 저하될 수 있는 주요.. 2025. 1. 29.
[토비의스프링] 2장-테스트 으아아아ㅏㅏ 한장 한장 내용이 너무많아...... 테스트란?테스트란 결국 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서, 만든 코드를 확신할 수 있게 해주는 작업이다. 또한 테스트의 결과가 원하는 대로 나오지 않는 경우에는 코드나 설계에 결함이 있음을 알 수 있다. 이를 통해 코드의 결함을 제거해가는 작업, 일명 디버깅을 거치게 되고, 결국 최종적으로 테스트가 성공하면 모든 결함이 제거됐다는 확인을 얻을 수 있다.코드의 정확성을 보장하여 신뢰도를 높인다.설계 및 코드의 결함을 조기에 발견하여 유지보수 비용을 절감할 수 있다.코드 변경(리팩토링) 시 기존 기능이 정상적으로 동작하는지 검증할 수 있다.테스트 실패시코드 자체의 버그잘못된 요구 사항 정의예상과 다른 실행 결과작은 단위의 테스트.. 2025. 1. 29.
반응형