목록Backend (6)
The Office Lover
소개 스프링 프레임워크의 핵심 개념 중 하나인 제어의 역전(Inversion of Control, IoC)은 객체지향 프로그래밍에서 중요한 원칙 중 하나인 "의존성 역전(Dependency Inversion)"을 구현하는 방식입니다. 이를 통해 애플리케이션의 컴포넌트들 간의 결합도를 줄이고 유연하고 확장 가능한 코드를 작성할 수 있게 됩니다. Java 코드 예시 1. ArticleService 인터페이스 public interface ArticleService { List getAllArticles(); } 2. ArticleServiceImpl 클래스 public class ArticleServiceImpl implements ArticleService { private ArticleRepository..
IO (Input / Output) 자바의 IO는 Input과 Output을 처리하는 방법입니다. InputStream과 OutputStream 클래스 계열을 사용하여 데이터를 읽고 쓰는 작업을 수행합니다. IO는 스트림(stream) 개념을 기반으로 하며, 한 번에 하나의 데이터를 읽고 쓰는 방식입니다. 아래는 대표적인 IO클래스 입니다. FileInputStream FileOuputStream BufferedReader BufferedWriter IO는 단순하고 직관적인 인터페이스를 제공하지만, 대량의 데이터를 처리할 때는 비효율적일 수 있습니다. import java.io.*; public class IOExample { public static void main(String[] args) { tr..
Blocking I/O (블로킹 입출력) Blocking I/O는 입출력 작업 중에 해당 작업이 완료될 때까지 스레드가 블로킹되는 방식입니다. 즉, 입출력 작업이 완료되기 전까지 해당 스레드는 다른 작업을 수행할 수 없으며 대기 상태에 있게 됩니다. 입출력 작업은 데이터를 읽어오거나 쓰는 동안 스레드가 멈추기 때문에 해당 작업이 오래 걸리는 경우, 다른 작업들의 처리도 지연될 수 있습니다. import java.io.*; public class BlockingIOExample { public static void main(String[] args) { try { FileInputStream fileInputStream = new FileInputStream("input.txt"); byte[] data ..
개요 @Transactional은 스프링 프레임워크에서 트랜잭션 관리를 선언적으로 처리하는 데 사용되는 어노테이션입니다. 이를 사용하여 트랜잭션의 시작과 종료, 속성 설정, 롤백 처리 등을 자동화할 수 있습니다. 적용 범위 클래스 인터페이스 메서드 해당 범위에서 적용 가능하며, 어노테이션이 붙은 범위 내에서 트랜잭션이 관리됩니다. 적용 범위에 따른 우선순위 1. 메서드(Method) > 클래스(Class) > 인터페이스(Interface) > 빈(Bean) 메서드 단위에 @Transactional 어노테이션이 적용된 경우, 해당 메서드의 트랜잭션 설정이 우선적으로 적용됩니다. 클래스 단위에 적용된 경우 해당 클래스의 모든 public 메서드에 영향을 미치지만, 메서드 단위에서 재정의 된 설정이 있다면 메..