분류 전체보기 49

[디자인패턴] 의존성 주입이란?

[디자인패턴] 의존성 주입이란? 이번 게시글에서는 의존성 주입 (Dependency Injection)이란 무엇인지 예시를 통해 설명할 겁니다. 예시가 옳지 않거나 제가 틀린 부분이 있을 시 피드백 주시면 빠르게 반영하도록 하겠습니다. 의존성 주입(Dependency Injection)이란? 의존성 주입(Dependency Injection)이란 컴포넌트 간 의존성을 낮추기 위해 인스턴스 생성을 클래스 외부로 위임하는 디자인 패턴 중 하나입니다. 자바나 코틀린 등 객체 지향 프로그래밍 언어에서 클래스 간 의존성이 존재한다는 건, 한 클래스의 변화로 인해 다른 클래스에 영향을 주는 것을 의미합니다. 의존성 주입을 사용하여 프로젝트를 구성한다면 보일러 플레이트를 줄일 수 있고, 추가로 유지보수에 여러 이점이..

[BFS / 알고리즘] BFS에서 방문처리가 의미하는 것

BFS 방문 처리 BFS의 방문 처리는 방문을 한 곳을 체크하는 것이 아니라 방문할 예정인 곳을 체크하는 방식이다. BFS를 풀 때 Queue를 보통 사용하게 되는데, 방문 체크를 Queue에서 데이터를 뽑을 때 방문 체크를 하는 것이 아닌, Queue에 집어넣을 때 방문체크를 하게 된다. 방문 한 곳을 체크한 경우, 방문 하진 않았지만 방문할 예정인 곳을 다른 곳에서도 접근 가능할 때 반복해서 탐색하는 경우가 생길 수 있다. 하지만 방문할 예정일 때 이를 체크한다면 이런 경우를 없앨 수 있다. 따라서 방문 한 곳 을 체크한다는 말은 틀린 말이고 방문 할 곳 을 체크하는 것이 적절한 말이다. 예제

공부/알고리즘 2023.03.09

[알고리즘/브루트포스/JAVA] 백준 1107 - 리모컨

[알고리즘/브루트포스/JAVA] 백준 1107 - 리모컨 문제: 백준 1107 - 리모컨 문제 : https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 사용언어 : JAVA 시간제한 : 2초 메모리 제한 : 256 MB 문제 설명 초기 채널 번호 : 100 입력 맞추려는 채널 번호 : N (0 ≤ N ≤ 500,000) 망가진 숫자 번호 개수 : M (0 ≤ M ≤ 10) 입력 셋 째 줄 : 고장난 버튼들 M개(띄어쓰기로 구분) +,..

공부/알고리즘 2023.03.06

[리액트/React] 화면 변경하기(State)

[리액트/React] 화면 변경하기(State) 지난 포스트에는 이벤트 리스너에 대해 간단히 알아보았습니다. 버튼 클릭 시 변수의 값을 바꾸는 것만으로는 화면에 보이는 버튼 내용을 변경하지 못했습니다. 리액트에서는 let, var와 같은 일반 변수들이 변경되더라도 일반적으로 컴포넌트를 다시 그리지 않습니다. State 화면을 다시 그리기 위해서는 state라는 특수한 변수를 사용하여야 합니다. 등록된 state 함수가 미리 설정된 함수에 의해 변경될 경우 컴포넌트를 재호출하며 화면을 다시 그립니다. state를 관리하기 위해 아래와 같이 리액트 라이브러리로 부터 useState란 함수를 import 해야합니다. 아래 코드는 React 라이브러리로부터 useState 함수를 import하는 코드입니다. i..

WEB/React 2023.01.08

[리액트/React] 이벤트 처리

[리액트/React] 이벤트 처리 이번 게시글에서는 리액트에서의 이벤트 처리에 대한 간단히 정리해볼 것입니다. 저는 리액트에서 이벤트 처리는 HTML DOM에 기본적으로 내장된 리스너를 사용한다고 이해했습니다. 버튼 클릭 예제 예를 들어 버튼 클릭 시 로그를 띄우는 기능을 구현할 때, 버튼 태그에 onClick 속성을 추가하여 이 기능을 구현할 수 있습니다. {}}> 버튼 위 코드는 클릭했을 시 동작을 화살표 함수를 이용하여 나타내었습니다. 이 대신 함수를 정의하고 함수의 이름을 지정하여 사용도 가능합니다. const CustomComponent = (props) => { const clickHandler = () => { console.log('클릭됨'); }; return ( 버튼 ); } 버튼을 클..

WEB/React 2023.01.07

[리액트/React] 컴포넌트

[리액트/React] 컴포넌트 이번 게시글에서는 리액트에서의 컴포넌트에 대한 기본 개념을 정리해볼 것 입니다. 리액트의 전부는 컴포넌트라고 할 수 있을만큼 컴포넌트는 중요한 부분입니다. 컴포넌트란? 컴포넌트는 화면 구성을 나타내는 자바 스크립트 함수라고 이해했습니다. 컴포넌트 이름 규칙 리액트에서 컴포넌트 이름은 첫 글자와 중간 글자들이 대문자인 파스칼 케이스(pascal case)를 사용합니다. * 이와 반대로 html에 내장된 내장 요소는 소문자로 시작합니다. 컴포넌트의 특징 리액트에서 컴포넌트들은 각각 단 하나의 루트 요소를 가져야만 합니다. 모바일 xml에서 루트 요소는 하나인 것과 비슷한 듯. JSX에서 데이터 동적 사용 태그 내부에서 자바 스크립트 코드를 사용하고 싶을 경우 중괄호 내부에 자바..

WEB/React 2023.01.07

[JavaScript/ES6] 문법 정리

var & let & const var : 기본 변수. let : 가변 변수, 값 재할당 불가 const : 불변 변수. 값 재할당 불가 Arrow Functions JS 기본 함수 사용법 function myFunction(a, ... , z) { ... } ES6 Arrow Func //기본 사용 법 const myArrowFunction = (a, ... , z ) => { ... } //함수 내용이 return 한 줄인 경우 단축 가능 (중괄호, return 생략) const myArrowFunction = (a, ... , z) a + b + c + ... + z; //인자가 하나일 경우 단축형 (인자 괄호 생략) const myArrowFunction = a => a * 3;​ Modules ..

WEB/기타 2023.01.03

[Python] 부하테스트 라이브러리 locust

[Python] 부하테스트 라이브러리 locust 이번 게시글에서는 파이썬의 부하테스트 라이브러리인 locust에 대한 간략한 소개와 사용 방법을 소개한다. 부하테스트란? 특수한 상황에서 시스템이 정상적으로 동작하는 지를 확인하기 위해 수행하는 테스트를 의미함. 부하테스트의 목적 - 목표 부하 도달 여부 확인 - 한계 부하 측정 - 부하가 주어지는 중에 기능 정상 수행 여부 체크 테스트 절차 1. 테스트 목적 확인 2. 테스트 대상 결정 3. 테스트 환경 구축 및 수행 사용 라이브러리 : locust 공식 사이트 : https://locust.io/ Locust.io An open source load testing tool. Define user behaviour with Python code, and..

공부/기타 2022.12.30

[Java] ConcurrentModificationException - 탐색 중인 리스트 변경

[Java] ConcurrentModificationException - 탐색 중인 리스트 변경 발생 오류 ConcurrentModificationException 예외 발생 문제 원인 자바에서 탐색 중인 리스트가 변경될 경우 발생하는 오류이다. 탐색 중인 리스트에 요소를 추가하여 발생한 오류이다. iterator에 remove를 사용하여 탐색 중인 리스트 내의 요소를 삭제할 수 있다. 하지만 일반적인 iterator는 추가를 지원하지 않는다. while (!pQ.isEmpty()) { ... //탐색 중인 리스트 for (Iterator iterator = edges[now].iterator(); iterator.hasNext();) { int[] list = iterator.next(); int ke..

[알고리즘/DP/JAVA] 백준 2193 - 이친수

[알고리즘/DP/JAVA] 백준 2193 - 이친수 문제 : 백준 2193 - 이친수 문제 : https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 사용언어 : JAVA 시간제한 : 2초 메모리 제한 : 128 MB 문제 설명 이진수 숫자 중 아래 성질을 만족하는 수들을 이친수라고 한다. 이친수 조건 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 숫자 n이 주..

공부/알고리즘 2022.07.24
반응형