본문 바로가기

전체 글88

라이브러리 vs 프레임워크, 정 동적 객체 인스턴스 의존 관계 라이브러리프레임워크내가 작성한 코드가 직접 제어의 흐름을 담당한다.특정한 기능을 구현하기 위해서만 사용 가능하고 구조에 영향을 미치지 않는다.내가 코드로 직접 호출,bcript, chartjs 등특정 라이프사이클 안에서 내가 작성한 코드를 내가 제어권을 가지는 것이 아니고 프레임워크가 대신 제어하고 실행한다.프레임워크가 구조와 라이프사이클을 정의한다.  정적 객체 인스턴스 의존 관계애플리케이션을 실행하지 않아도 객체의 참조 연결을 알 수 있는 구조쉽게 말해서 비즈니스 로직에서 필요로 하는 객체 관계들을 말한다.Interface - InterfaceImplserviceImpl - Repository(Interface) 동적 객체 인스턴스 의존 관계 애플리케이션 실행 시점 (런타임 시)에만 객체의 참조 연결.. 2024. 5. 23.
Spring Framework, 객체지향, SOLID Spring - 여러가지 기술들의 모음,스프링 DI(IOC) 컨테이너 기술, 스프링 프레임워크, 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계를 뜻하기도 한다. 핵심개념: 스프링은 자바 언어 기반의 프레임워크 - 객체지향언어즉, 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 핵심인 Spring Framework,여러 기술들을 편리하게 사용할 수 있는 Spring BootSpring data - ex) jpaSpring session - session 기능을 편리하게 사용할 수 있음Spring security - 보안Spring Rest Docs - api 문서화 편하게Spring Batch - 배치처리Spring Cloud , etc.. 핵심기술 : Spring DI.. 2024. 5. 20.
AOP AOP가 필요한 상황 Aspect Oriented Programming공통 관심 사항, 해당 로직을 필요한 부분에 적용 (모든 함수에 대해 걸리는 시간 측정) 메소드 호출시 인터셉트해서 함수를 실행ex) 시간을 측정하는 로직을 별도의 공통 로직으로 만든다. 적용 전 의존관계controller -> service 적용 후 의존관계controller -> 프록시(가짜)service --- joinPoint.proceed() ----> 실제 serviceaop.TimeTraceAop@Aspect@Component // or config에서 bean으로 등록 2024. 5. 19.
Spring boot의 컨텐츠 rendering 동작 과정, 컴포넌트 스캔, 자동의존관계 설정 한번 그려봤다.spring boot는 이렇게 다해준다. 1.정적(static)의 경우설명은 다음과 같다.    1. 톰캣 서버가 컨트롤러단에서 해당 도메인 + 컨텍스트패스 (요청)에 해당하는 응답이 있는지 찾는다.    2. 해당 경로에 맞는 렌더링 파일이 있는지 찾는다. (index.html의 경우 static 디렉토리 바로 아래있기 때문에 인식 가능)    3. 없을 경우 404를 렌더링해준다. 2.template engine 방식렌더 해주는 과정에서 viewResolver가 model 추가 등 여러 동작을 수행하여 변환한 html을 전달해준다. 3.api 방식 (response body)view같은 것 없이 http response의 body를 그대로 리턴해준다. (객체를 반환한다.)  컴포넌트 스.. 2024. 5. 15.
백준 16139 인간-컴퓨터 상호작용 간단한 dp 문제로 접근해서 풀었다.흐름은 다음과 같다. 1. 2차원 배열 int[][] dp = new int[알파벳의 개수][글자의 자리수] 로 설정한다.     (3번째 자리까지의 c의 dp값은 dp['c' - 'a'][3])이다.2. dp를 돌려주는데  해당 알파벳인 경우 dp[][i] = dp[][i-1] + 1;을 해주고 이외의 경우에는 dp[][i] = dp[][i-1]을 해준다3. a ~ b번째 자리수의 경우 dp[][b]  - dp[][a-1] 로 접근하면 되므로 이렇게 return하는 함수를 만든다.  subtask가 있으므로 scanner대신 BufferReader와 StringBuilder 이용했다.package programers;import java.io.BufferedReade.. 2024. 5. 11.
노트북 외장그래픽만 사용, 활성화 (옵티머스 안하기) 갑자기 게임이 끊긴다는 지인의 정보를 듣고 구글링 해봤는데 대다수가 허위정보다.진짜 100이면 100 PhysX 구성이나 Device Manager 건드리라고 한다. 한가지 알아야 할 점은 다음과 같다.일반적으로 게이밍 노트북의 경우 노트북 디스플레이 출력을 외장그래픽을 이용하고, 외부 모니터의 경우 외장 그래픽 카드를 이용하는 것 같다. 만약 엔비디아 제어판에서 특정 게임을 추가한다고 해도, 그 게임은 외장으로 돌아가겠지만 결국 출력은 내장 그래픽으로 해준다는 가설을 세울 수 있다. (정확하지는 않음)결국 답은 내장그래픽 자체를 이용하지 않아야 한다는 것이다. device manager, 장치관리자에서 내장그래픽을 사용안함 하면 되는 게 아닌가? 라고 생각할 수 있다.이것도 해봤는데 이렇게 되면 모니터.. 2024. 4. 29.