분류 전체보기 38

스프링 컨테이너와 스프링 빈

섹션 4, 스프링 컨테이너와 스프링 빈 📍 스프링 컨테이너 생성 // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext = 스프링 컨테이너 인터페이스 XML / 애노테이션 기반 자바 코드 / ... 인터페이스 구현체 일반적으로 ApplicationContext를 스프링 컨테이너라 함 스프링 컨테이너의 생성 과정 개념적 3가지 단계 스프링 컨테이너 생성 스프링 컨테이너 생성 => 스프링 빈 저장소 (비어있음) 구성 정보 지정해줘야 함 (AppConfig.class) 스프링 빈 등록 파라미터로 넘어온 설정 클래스 정보(AppConf..

스프링 핵심 원리 이해2 - 객체 지향 원리 적용

섹션 3, 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 ☁️ 새로운 할인 정책 그리고 문제점 새로운 정률 할인 정책 추가 (FixDiscountPolicy -> RateDiscountPolicy) DiscountPolicy 인터페이스를 상속 받아 RateDiscountPolicy 구현 ... 할인 정책을 변경하려면 클라이언트인 OrderServiceImpl 로직을 수정해야 함 public class OrderServiceImpl implements OrderService { // private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new Rat..

[Vue 3] 디렉티브

🔍 디렉티브 📍 소개 HTML 요소에 추가적인 동작을 수행하도록 지시하는 Vue 템플릿의 특별한 속성 -v 접두사로 시작함 데이터 바인딩, 조건부 렌더링, 리스트 렌더링 등을 구현할 수 있음 사용자 정의 디렉티브를 만들어 기능을 확장할 수도 있음 📍 v-text 엘리먼트의 텍스트 컨텐츠를 업데이트함 엘리먼트 내부의 기존 컨텐츠를 덮어쓰며, 일부를 업데이트해야 하는 경우, 이중 중괄호 사용 {{msg}} 📍 v-html 엘리먼트의 innerHTML를 업데이트함 v-html의 내용은 일반 HTML로 삽입됨 (Vue 템플릿 문법을 처리하지 않음) 임의의 HTML을 동적으로 렌더링하는 것은 XSS 공격으로 쉽게 이어질 수 있음 = 매우 위험함 => 가급적 사용하지 말자 📍 v-show true / false 값..

카테고리 없음 2023.05.16

[Vue 3] SFC 문법

🔍 SFC 문법 📍 개요 *.vue 파일 확장자를 사용하는 SFC(Vue 싱글-파일 컴포넌트)는 HTML과 유사한 문법을 사용함 Vue 컴포넌트를 설명하는 커스텀 파일 형식 세 가지 유형의 최상위 언어 블록(, , 예를 들어 컴포넌트 설명서가 될 수 있습니다. 📍 언어 블록 ✅ *.vue 파일은 최상위 블록 하나만 포함할 수 있음!! 컨텐츠는 추출되어 @vue/compiler-dom으로 전달됨 JavaScript 렌더 함수로 사전 컴파일되며, 내보낸 컴포넌트에 render 옵션으로 첨부됨 ✅ *.vue 파일은 하나의 블록만 포함할 수 있음!! 제외 스크립트는 ES 모듈로 실행됨 기본 내보내기는 일반 객체 또는 defineComponent의 반환 값으로 Vue 컴포넌트 옵션 객체여야 함 ✅ *.vue 파일..

Front-end/Vue 3 2023.05.10

[Vue 3] Vue 시작하기

🔍 Vue 3 시작 회사 업무에서 프론트엔드 프레임워크로 Vue 3를 사용하는데, 아직 한 번도 다뤄본 적이 없기에 공식문서를 통해 학습을 진행하고자 함! 📍 Vue ? 사용자 인터페이스 구축을 위한 JavaScript 프레임워크 표준 HTML, CSS 및 JavaScript를 기반으로 구축되며, 사용자 인터페이스를 효율적으로 개발할 수 있는 컴포넌트 기반 프로그래밍 모델을 제공함 import { createApp } from 'vue' createApp({ data() { return { count: 0 } } }).mount('#app') 숫자 세기: {{ count }} 선언적 렌더링: Vue는 표준 HTML을 템플릿 문법으로 확장하여 JavaScript 상태(State..

Front-end/Vue 3 2023.05.10

[Python] 위상 정렬(topology sort)

🔍 위상 정렬 대학교 전공 시간에 교수님이 전공 선수과목 구조를 예로 들어주셨던 것이 어렴풋이 기억난다.. 핵심 이론과 구현 방법을 간단히 정리해 보려 한다. Do it! 알고리즘 코딩테스트 도서를 참고하였다. 📃 개념 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘 항상 유일한 값으로 정렬되지는 않음! 진입 차수 = 자기 자신을 가리키는 에지의 개수 진입 차수 리스트를 업데이트한다. 진입 차수 리스트 중 진입 차수가 0인 노드를 선택하여 정렬 리스트에 저장한다. 선택된 노드가 가리키는 노드들의 진입 차수를 1씩 뺀다. 모든 노드가 정렬될 때까지 2 ~ 3 과정을 반복한다. 항상 유일한 값으로 정렬되지 않는 이유 => 2번 과정에서 진입 차수가 0인 노드가 여러 개 존재할 수 있기 때문에 🐍 코..

[Python] 유니온 파인드(Union-Find)

🔍 유니온 파인드(Union-Find) 해당 알고리즘이 있는 것은 알았는데 어떤 식으로 구현해서 사용하는지는 모르고 있었다. 유니온 파인드와 관련된 코테 문제들을 풀게 되었고, 이참에 유니온 파인드 알고리즘에 대해 아주 간략하게만 정리해보려 한다. Do it! 알고리즘 코딩테스트 도서를 참고하였다. 📃 개념 여러 노드가 있을 때 특정 2개의 노드를 연결해 1개의 집합으로 묶는 union 연산 두 노드가 같은 집합에 속해 있는지 확인하는 find 연산 1차원 리스트를 사용한다. 처음엔 아무것도 연결되어 있지 않은 상태이므로 각 노드가 모두 대표 노드이다. 따라서, 자신의 인덱스값으로 초기화 해준다. parent = [0 for _ in range(n + 1)] for i in range(n + 1): pa..