728x90 반응형 java6 [Spring] IoC(Inversion of Control)와 DI(Dependency Injection) 이해하기 IoC(Inversion of Control)란?IoC(Inversion of Control)는 한글로 번역하면 '제어의 역전'이라는 의미, 애플리케이션의 흐름 제어를 개발자가 아닌 프레임워크가 담당하도록 역전된다는 것을 말한다. 다시 말해, 객체의 생성 및 객체 간의 의존성을 수동으로 처리하지 않고, Spring과 같은 IoC 컨테이너가 대신 관리해 주는 것을 의미한다.보통 객체지향 프로그래밍에서는 개발자가 객체를 명시적으로 생성하고, 그 객체가 다른 객체를 사용할 수 있도록 의존성을 직접 주입합니다. 예를 들어, A 객체가 B 객체에 의존하는 경우, A는 B를 생성하거나 그 참조를 받아야 합니다. 이때 개발자가 객체 간의 관계를 직접 설정합니다.IoC를 사용하면 이 관계 설정을 개발자가 아닌 Spri.. 2024. 9. 10. [Spring] Spring Bean 생명주기와 @Annotation 정리 Spring Bean이란?Spring Bean은 Spring IoC(제어의 역전) 컨테이너에 의해 관리되는 Java 객체입니다.IoC 컨테이너는 Bean의 생성, 설정, 소멸을 책임지는 아키텍처의 중추 역할을 합니다.이러한 객체는 단순한 데이터 홀더에서 복잡한 비즈니스 로직을 처리하는 컴포넌트까지 다양할 수 있습니다.Spring의 강점은 이 Bean들의 생성, 설정, 생명주기를 관리하는 데 있습니다.왜 Spring Bean 생명주기를 이해해야 할까요?Spring Bean의 생명주기를 이해하면 Spring 애플리케이션의 내부 작동 방식을 알 수 있습니다.이 과정을 잘 이해하면 Bean을 더 효과적으로 관리하고, 리소스를 효율적으로 사용하며, 애플리케이션의 성능을 최적화할 수 있습니다.Spring Bean .. 2024. 9. 10. [Java] params URLEncoder 처리 서론서비스에서 활용하는 Redirect Page를 점검하던 도중 특정 Params에서 데이터를 파싱해오지 못하는 이슈를 발견했다.영문, 숫자, = 포함 문자는 문제가 없었으나 AES 암호화에서 + 특수문자가 포함될 경우 발생하는 원인을 분석하였다.AES256대칭키 암호화 알고리즘256비트 길이의 비밀키를 사용하여 데이터를 블록 단위(128비트)로 암호화고도의 보안성을 제공하며, 고정된 키 길이로 고정된 크기의 블록을 반복적으로 암호화하는 구조로 설계암호화 과정에서 패딩(Padding)과 초기화 벡터(IV)를 사용하여 데이터의 안전성 강화 Advanced Encryption Standard - WikipediaFrom Wikipedia, the free encyclopedia Standard for the.. 2024. 7. 30. [Spring Boot] IndexOutOfBoundsException 개선 작업 서론Spring Boot 환경에서 특정 API 호출 시 발생하는 IndexOutOfBoundsException 이슈를 정리해본다.class java.lang.IndexOutOfBoundsException -java.lang.IndexOutOfBoundsException:Index 0 out of bounds for length 0해당 이슈는 리스트를 제어하는 로직에서Index [0]에 위치하는 값을 찾을 수 없을 경우 발생할 수 있다. IndexOutOfBoundsException (Java Platform SE 8 )Thrown to indicate that an index of some sort (such as to an array, to a string, or to a vector) is out o.. 2024. 7. 24. [Java] Mybatis Column '{컬럼명}' in IN/ALL/ANY subquery is ambiguous 해결 서론Mybatis 코드 개선 작업에서 발생한 이슈를 정리해본다.Cause: java.sql.SQLIntegrityConstraintViolationException: Column '{컬럼명}' in IN/ALL/ANY subquery is ambiguous;해당 이슈는 여러 테이블과 서브쿼리, 조인(join)을 사용하는 SQL 문에서동일한 컬럼 이름이 여러 테이블에 존재할 때 발생할 수 있다.문제 발생 SQL 예제아래 SQL은 서브쿼리 안에서 id 컬럼이 모호한 문제가 있다.SQL 엔진은 서브쿼리 내에서 어느 테이블의 id 컬럼을 사용해야 하는지 결정할 수 없다.SELECT a.id, a.name, b.status FROM table1 aLEFT JOIN table2 .. 2024. 7. 19. [JDK, PASS] cannot access class com.sun.crypto.provider.SunJCE 서론나이스평가정보 PASS 본인안심확인 서비스를 연동하는 도중 JDK 11 에서는 문제 없었으나,JDK 17이 적용된 프로젝트에서 발생한 이슈에 대해 정리해본다.참고 배경Gradle 9.0Gradle에 NiceId.jar를 추가하고 VM Option을 지정하였으나 실행 시 VM Option이 미적용되어 동일한 이슈가 발생되었다.compileJava { options.compilerArgs += ["--add-exports=jdk.compiler/com.sun.crypto.provider=ALL-UNNAMED"]}dependencies { ... implementation files('libs/NiceId.jar')} com.sun.crypto.provider.SunJCEcom.sun.crypto.* 라이.. 2024. 6. 20. 이전 1 다음 728x90 반응형