전체 글28 스프링 (Ioc, DI, Aop, Psa) ❕ 들어가며이번 글에서는 스프링의 중요한 콘셉트인 IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화)에 대해 알아보겠습니다.- IoC(제어의 역전)이 무엇인지- DI(의존성 주입)이 무엇인지- 스프링 컨테이너와 빈이 무엇인지- AOP(관점 지향 프로그래밍)이 무엇인지- PSA(이식 가능한 서비스 추상화)이 무엇인지 IoC와 DIIoCIoC는 Inversion of Control을 줄인 표현입니다. 직역하면 제어의 역전이죠. 이 말이 조금 어렵게 들리겠지만 자바를 공부하신 분이라면 충분히 이해할 수 있는 말입니다. 여러분이 지금까지 자바 코드를 작성해 객체를 생성할 때는 객체가 필요한 곳에서 직접 생성했을 겁니다. 다음을 보면 B 객체를 사용하.. 2025. 7. 16. DB Join (INNER/LEFT/RIGHT/FULL OUTER) SQL JOINJOIN은 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현해 주는, Relation Database 에서 가장 많이 쓰이는 녀석이다. (INNER) JOIN조인하는 테이블의 ON 절의 조건이 일치하는 결과만 출력표준 SQL과는 달리 MySQL에서는 JOIN, INNER JOIN, CROSS JOIN이 모두 같은 의미로 사용된다. sqlselect u.userid, name from usertbl as u inner join buytbl as b on u.userid=b.userid where u.userid="111" -- join을 완료하고 그다음 조건을 따진다.Copy inner join 함축 구문단순히 from 절에 콤마 쓰면 i.. 2025. 7. 16. 프로젝트 진행하며 작성한 테스트코드 테스트 코드 작성시 참고 블로그 : https://mangkyu.tistory.com/144 [Java] JUnit을 활용한 Java 단위 테스트 코드 작성법 (2/3)이번에는 순수 Java 기반의 애플리케이션에 대해 테스트 코드를 작성해보고자 합니다. 1. Java 단위 테스트(Unit Test) 작성 준비[ 필요한 라이브러리 ]요즘 Java 단위테스트 작성에는 크게 2가지 라mangkyu.tistory.com 블로그에 given, when, then 참고해서 작성했습니다given(준비): 어떠한 데이터가 준비되었을 때when(실행): 어떠한 함수를 실행하면then(검증): 어떠한 결과가 나와야 한다.현재 테스트 코드들을 보면@ExtendWith 어노테이션을 사용해 @Mock 으로 주입을 받아 사용하.. 2025. 7. 15. API 연결후 DB파싱 -> DB저장 config (batch) 📦 StoreBatchConfig 클래스 완전 분석공공데이터 API → DTO → Entity → DB 저장 까지 처리하는 Spring Batch 구성 클래스🧾 클래스 어노테이션 설명@Configuration@EnableBatchProcessing@RequiredArgsConstructor@Slf4j@Profile("!mock")어노테이션 설명@ConfigurationSpring 설정 클래스 지정. Bean 정의 포함 가능@EnableBatchProcessingSpring Batch 기능 활성화 (Job, Step 관리 등 자동 설정)@RequiredArgsConstructorfinal 필드들에 대해 생성자 자동 생성 (DI 목적)@Slf4j로깅을 위한 Lombok 어노테이션 (log.info, lo.. 2025. 7. 14. 공공데이터포털 API 연동후 DB파싱 📦 StoreApiClient 클래스 상세 분석 (with 상세 설명 + properties)공공데이터 포털 API를 호출해 서울 지역 + 특정 업종의 가게 정보를 필터링하여 StoreDto 리스트로 반환하는 서비스 클래스🧾 필드 및 주입값private final ObjectMapper objectMapper;// JSON 파싱용 Jackson 객체, 스프링 빈으로 주입됨@Value("${external.api.url}")private String apiUrl;// application.properties에 정의된 API URL을 주입받음@Value("${external.api.key}")private String apiKey;// application.properties에 정의된 API 인증키 주입.. 2025. 7. 14. GitHub에 잘못 올라간 파일 제거하기 협업을 하다가 실수로 불필요한 파일 및 민감한 정보까지 GitHub에 올린 경우가 있었습니다.아래의 경우가 예시입니다.Java의 target 폴더 하위 파일들.classGradle과 IntelliJ의 경우 idea 폴더 하위 파일들민감한 정보들(DB 정보, AWS 비밀번호 등)특히 마지막 민감한 정보들을 GitHub에 올리면 해커들의 공격대상이 쉽게 됩니다. 실제로 지인 중 GitHub에 AWS RDS 정보를 올리고 랜섬웨어에 감염된 경우가 있습니다. 뿐만 아니라 AWS 폭탄 과금의 경우도 인터넷에서 종종 찾아볼 수 있어 더욱 주의해야 합니다.위와 같은 내용들은 .gitignore 라는 파일에 추가를 해야합니다..gitignore란 ?.gitignore란 Git 버전 관리에서 제외할 파일 목록을 지정하는.. 2025. 4. 29. 이전 1 2 3 4 5 다음