Skip to content
Bible, Lee, Data

Bible, Lee, Data

Faith, software, data, and everyday life.

CategoriesAll posts

Engineering/Backend

[Spring] 관점 지향 프로그래밍 AOP: Aspect Oriented Programming

🌿Spring AOPAspect Oriented Programming관점 지향 프로그래밍(AOP)은 애플리케이션의 핵심 비즈니스 로직에서 분리된 관심사(Concern)를 모듈화 하여 코드의 가독성과 유지보수성을 향상하는 기술이다.관점(관심사)은 업무 구현 시 주 업무가 아닌 나머지 보조 업무를 의미한다. 주 업무와 보조 업무게시판 글쓰기를 예로 들어 주 업무와 보조 업무를 구분해 보도록 하자.1. 기존 방식- add.doa. 글쓰기 (주 업무)b. 권한 체크 (보조 업무)기존 방식은 주 업무와 보조 업무를 같은 곳(한 파일)에서 구현한다.단점: 코드 관리가 불편하다. 어디부터 어디까지가 주 업무이고 보조 업무인지 알기 어렵다. 2. AOP 방식- add.do주 업무와 보조 업무를 물리적으로 분리시켜서 ..

Engineering/Backend

[Spring] 의존성 주입 DI: Dependency injection

DI와 AOP는 스프링의 핵심 기술이지만, 스프링의 전용 기술이 아니다.스프링이 있기 훨씬 이전에 있던 기술(아키텍처)인데, 스프링에서 도입한 게 Spring DI, Spring AOP이다.가장 핵심적인 기술인 만큼 현업 면접에서도 많이 물어보는 질문이기도 하다. 🌿Spring DIDependency Injection 디자인 패턴DI를 우리말로 하면 의존(성) 주입이라고 부른다.스프링에서 굉장히 중요한 개념인데, 스프링 내의 모든 객체를 관리할 때 사용하기 때문이다.눈에 보이는 부분, 눈에 보이지 않는 부분에서 모두 사용이 된다.DI의 정의는 프로그래밍에서 구성 요소 간의 의존 관계가 소스 내부가 아닌 외부 환경에서 정의되게 하는 디자인 패턴이다. 의존 관계com.test.spring.di01 패키지M..

Engineering/Backend

[Spring] 개발자 환경 구축: STS 3, Maven

🌿Spring 설치Spring Tools 3full distribution on Eclipse 4.19Spring Tools 3 > Spring Tool Suite 3.9.18 > spring-tool-suite-3.9.18.RELEASE-e4.19.0-win32-x86_64.ziphttps://download.springsource.com/release/STS/3.9.18.RELEASE/dist/e4.19/spring-tool-suite-3.9.18.RELEASE-e4.19.0-win32-x86_64.zip위 링크에서 압축파일을 다운로드한다.이 파일은 이클립스에서 스프링을 개발할 수 있게 배포한 Spring Tool Suite로, 줄여서 STS라고 부른다.Spring을 할 때에는 STS 3를 사용하고..

Life/Faith

2023-11-19 추수감사주일 세례

오늘은 추수감사주일이었고, 세례식이 있는 날이었다.신앙생활을 시작한 건 2018년도지만, 믿기 시작한 건 2019년도부터이니 거의 5년만에 세례를 받게 되었다. 그동안 세례를 받기 위해서 신앙 생활을 한 건 아니었지만, 세례를 받고 나니 참 좋았다. 이 공동체의 구성원이 되었다는 느낌도 들고, 그와 함께 그리스도 안에서 내가 어떻게 행동해야 할지 책임감도 느껴졌다.여자친구도 세례를 축하해주기 위해 먼 일산에서부터 와주었다.이제 본격적인 시작이라는 생각이 든다. 대학교를 졸업하고 사회로 나간 뒤에 나의 행함에서 그리스도인의 향기가 느껴지고, 내가 받은 은혜를 베푸는 삶을 살아갈 수 있기를 바란다. 추수감사주일은 지나온 시간을 돌아보며 하나님께서 내게 주신 것에 감사하는 날이다.오늘 예배 말씀을 들으면서 나..

Archive/Coding Challenges

[Java] Baekjoon Online Judge 11723: 집합

11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 💡문제 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20) all: S를 {..

Archive/Coding Challenges

[Java] Baekjoon Online Judge 28278: 스택 2

28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 💡문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000) 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. 스택에 들어있는 정수의 개수를 출력한다. 스택이 비어있으면 1, 아니면 0을 출력한다. 스택에 정수가 있다면 맨 위의 정수를 출력한다. 없다면 -1을 대신 출력한다. ✏️입력 첫째 줄에 명령의 수 N이 주어진다. (1..

Archive/Coding Challenges

[Java] Baekjoon Online Judge 1914: 하노이 탑

1914번: 하노이 탑 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 💡문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개..

Archive/Coding Challenges

[Java] Baekjoon Online Judge 30642: 아이그루스와 화장실

30642번: 아이그루스와 화장실 IGRUS는 Inha Group of Research for Unix Security의 약자로, 2000년부터 시작된 정통처 산하 컴퓨터 학술 자치회이다. IGRUS의 동아리방은 사실 복층 구조로, 1층부터 N층까지 총 N개의 층이 있다. 홀수 층에는 www.acmicpc.net 💡문제 IGRUS는 Inha Group of Research for Unix Security의 약자로, 2000년부터 시작된 정통처 산하 컴퓨터 학술 자치회이다. IGRUS의 동아리방은 사실 복층 구조로, 1층부터 N층까지 총 N개의 층이 있다. 홀수 층에는 몸집이 큰 동물을 위한 화장실이, 짝수 층에는 몸집이 작은 동물을 위한 화장실이 있다. 인하대학교의 마스코트 안뇽이는 용이고 인덕이는 오리..