분류 전체보기 92

[DE] 데이터 엔지니어링

데이터 엔지니어링📌 데이터 엔지니어링은 원시 데이터(raw data)를 가져와 분석 및 머신러닝과 같은 다운스트림 사용 사례를 지원하고, 고품질의 일관된 정보를 생성하는 시스템과 프로세스의 개발, 구현 및 유지 관리를 의미합니다.     데이터 엔지니어링 수명 주기의 단계는 다음과 같습니다. ● 데이터 생성, generation● 데이터 저장, storage● 데이터 수집, ingestion● 데이터 변환, transformation● 데이터 서빙, serving 데이터 엔지니어링 수명 주기는 전체 수명 주기에 걸쳐 중요한 아이디어인 드러나지 않는 요소라는 개념을 포함합니다. 여기에는 보안, 데이터 관리, 데이터옵스, 데이터 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링이 포함됩니다.  데이터 엔지니..

[Spring] Spring 웹 애플리케이션 계층 구조

Spring 웹 애플리케이션 계층 구조📌  계층 구조는 애플리케이션을 여러 층으로 나누어 각 계층의 책임을 분리하여 관리하는 구조입니다. 이렇게 계층화하면 유지보수성, 확장성, 테스트 용이성 등이 향상됩니다. 대표적인 계층 구조는 Controller, Service, Repository, Domain(또는 Entity) 계층으로 나누어져 있습니다.네트워크 계층 구조와는 다른 개념입니다만, 계층구조라는 점에선 같습니다. 1. Controller 계층 (Web Layer)책임: 클라이언트의 HTTP 요청을 받아서 적절한 비즈니스 로직( 실제 문제를 해결하는 코드 = 문제 해결책 )을 처리할 서비스 계층에 전달하고, 처리 결과를 반환하는 계층입니다.역할:클라이언트(웹 브라우저, 모바일 앱 등)로부터 들어오는..

[Spring] 스프링 웹 개발 기초

웹 개발 방식📌 스프링에서 웹 개발 기초는 크게 세 가지 방식으로 나뉩니다: 정적 콘텐츠 제공 방식, MVC와 템플릿 엔진 방식, 그리고 API 방식입니다. 각 방식이 웹 애플리케이션에서 데이터를 제공하는 데 사용되는 방법이 다릅니다.   정적 콘텐츠 제공 방식📌 정적 콘텐츠는 서버에서 변하지 않는 고정된 데이터를 제공하는 방식입니다.HTML, CSS, JavaScript 파일 등과 같은 리소스를 정적 파일로서 서버가 직접 제공하므로, 사용자 요청 시 서버에서 바로 해당 파일을 전달해 줍니다.이런 방식은 스프링에서는 주로 /static, /public 폴더에 파일을 넣어 제공할 수 있습니다. 정적 콘텐츠는 빠르게 응답할 수 있지만동적인 데이터 제공이나 로직 처리가 불가능하다는 한계가 있습니다. 주로 ..

[JAVA] 계산기를 만들어보자!

요구사항 정의 및 설계요구사항 정의어떤 계산기 기능이 필요한지 명확히 합니다.예를 들어, 기본적인 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈), 괄호 사용, 제곱근, 제곱 등.사용자 인터페이스 방식 결정 : 콘솔 기반인지, GUI(그래픽 사용자 인터페이스) 기반인지.예외 처리 : 0으로 나누기와 같은 오류를 어떻게 처리할지 결정합니다.설계클래스 다이어그램: 계산기에 필요한 클래스를 설계합니다. 예를 들어, Calculator, Operation, Parser 등이 될 수 있습니다.기능 분해: 주요 기능을 메소드로 분리합니다. 예를 들어, add(), subtract(), multiply(), divide(), evaluateExpression() 등.데이터 흐름 설계: 데이터가 클래스 간에 어떻게 흐를지를 결..

Project/JAVA 2024.11.13

[JAVA] NULL

NULL📌참조 변수가 아무 객체도 가리키지 않음을 나타내는 특수한 값입니다.특징:객체가 생성되지 않았거나, 특정 객체를 참조하지 않는 상태를 나타냅니다.참조 타입(객체 타입)에만 사용할 수 있습니다. (예: String, Integer, 사용자 정의 클래스 등)원시 타입(예: int, float)에는 사용할 수 없습니다.null 값의 변수로 메서드를 호출하려고 하면 **NullPointerException**이 발생합니다.빈 공간 (Empty String)의미: 길이가 0인 문자열로, 내용이 없는 문자열을 의미합니다.표현: 빈 문자열은 "" (따옴표만 있는 문자열)로 표현됩니다.특징:문자열 객체가 존재하지만, 내용이 없습니다.메모리에는 문자열 객체가 생성되며, 이는 null과 다릅니다.isEmpty()..

Back-End (Web)/JAVA 2024.11.13

[JAVA] 쓰레드 & 람다 함수 & 스트림

프로세스📌 운영체제로부터 자원을 할당받는 작업의 단위 프로세스 작업 단위프로세스는 “실행 중인 프로그램”을 의미합니다.예를 들어 우리가 Java 프로그램을 실행시키면 이 프로그램은 프로세스라는 이름으로 운영체제 위에서 실행됩니다.즉, OS 위에서 실행되는 모든 프로그램은 OS가 만들어준 프로세스에서 실행됩니다.카카오톡, 브라우저, JAVA 프로그램 모두 프로세스로 실행되며크롬 브라우저를 2개 띄우면 크롬 브라우저 프로세스도 2개가 띄워진 것입니다.   프로세스 구조 📌 OS가 프로그램 실행을 위한 프로세스를 할당해 줄 때 프로세스 안에 프로그램 Code와 Data 그리고 메모리 영역(Stack, Heap)을 함께 할당해 줍니다. Code는 Java main 메소드와 같은 코드를 말합니다.Data는 프..

Back-End (Web)/JAVA 2024.11.13

[JAVA] Generic

Wrapper 객체📌 Java에서 기본 데이터 타입(primitive type)을 객체로 다룰 수 있도록 해주는 클래스들을 말합니다. 기본 데이터 타입은 객체가 아니기 때문에 객체로 다루어야 하는 경우에 Wrapper 클래스를 사용합니다.  박싱(기본 데이터를 Wrapper 클래스로 변경하는 행위)해서 객체화된 원시 값들은 이제 클래스처럼, 구현되어 있는 메소드들을 자유롭게 이용이 가능하고, 객체만 할 수 있는 것들을 할 수 있게 됩니다.generic을 알기 위해서는 Wrapper 객체를 이해하는 것이 좋습니다.좀 더 전문적인 설명으로, 기본 타입은 '값'의 의미로만 사용되지만 객체로서의 기능이 필요한 경우 추상화를 통해 객체의 속성을 부여한다. 즉, 기본 값을 객체화 해서 "감싼다"라는 의미로 이러한..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 오류 및 예외에 대한 이해

오류 및 예외에 대한 이해 오류(Error)🔥예외(Exception)🚨오류(Error)는 일반적으로 회복이 불가능한 문제입니다.이는 시스템 레벨에서, 또는 주로 환경적인 이유로 발생합니다.코드의 문제로 발생하는 경우도 있지만, 일단 발생하는 경우 일반적으로 회복이 불가능합니다.에러가 발생한 경우 우리는 어떠한 에러로 프로그램이 종료되었는지를 확인하고 대응합니다.예외(Exception)는 일반적으로 회복이 가능한 문제입니다.회복이 가능하다는 전제는 우리가 “그 예외가 발생할 수 있다는 것을 인지하고, 대응했을 것입니다”.현실적으로 코드 레벨에서 할 수 있는 문제 상황에 대한 대응은 “예외 처리”에 속합니다.보통 만나게 되는 문제는 예외이고 이는 "예외처리"로 예방이 가능하다.보통 예외는 코드의 실행, ..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 인터페이스

인터페이스📌 Java에서 클래스가 구현해야 하는 메서드들의 목록을 정의하는 일종의 계약입니다.  인터페이스 선언 public interface 인터페이스명 { public static final char A = 'A'; static char B = 'B'; final char C = 'C'; char D = 'D'; void turnOn(); // public abstract void turnOn();} 모든 멤버 변수는 public static final이어야 합니다.생략 가능합니다.모든 메서드는 public abstract이어야 합니다.생략 가능합니다. (static 메서드와 default 메서드 예외)생략되는 제어자는 컴파일러가 자동으로 추가해줍니다. 단순하게 클래스는 설계..

Back-End (Web)/JAVA 2024.11.12

[JAVA] 클래스 간의 관계와 상속

상속📌 상속의 사전적 정의는 부모가 자식에게 물려주는 행위를 말합니다.객체 지향 프로그램에서도 부모 클래스의 필드와 메서드를 자식 클래스에게 물려줄 수 있습니다.상속을 사용하면 적은 양의 코드로 새로운 클래스를 작성할 수도 있고 공통적인 코드를 관리하여 코드의 추가와 변경이 쉬워질 수도 있습니다.이러한 특성 때문에 상속을 사용하면 코드의 중복이 제거되고 재사용성이 크게 증가하여 생산성과 유지 보수성에 매우 유리해집니다. = 자바 객체 지향의 중요한 기능 중 하나로, 한번 변수나 메서드 선언하고 그걸 다른 이들이 빌려쓰는 형태로 만들어, 매번 변수, 메서드를 반복해서 선언하는 것을 방지한 방식이다.  위의 그림처럼 개발자, 댄서, 가수 모두 인간의 특징인 이름,나이,학습,일등의 특징을 가질 수 밖에 없다..

Back-End (Web)/JAVA 2024.11.12