함량 100%

함지의 개발일기

최신 글

more

[Spring] 스프링 MVC와 DispatcherServlet 전략

이 글은 토비의 스프링의 내용을 정리한 것입니다. Spring 스프링은 집착에 가까울 정도로 모든 기능을 다양한 방법으로 확장하도록 설계되어 있다. 스프링이 제공하는 유연하고 확장성이 뛰어난 구조를 이용해서 각 프로젝트에 맞는 최적화된 구조를 만들어내고, 관례를 따라 빠르게 개발 가능한 스프링 기반의 프레임워크를 만들어서 사용해야한다. 스프링은 특정 기술이나 방식에 매이지 않으면서 웹 프레젠테이션 계층의 각종 기술을 조합, 확장해서 사용할 수 있는 매우 유연합 웹 애플리 케이션 개발의 기본 틀을 제공해준다. DispatcherServlet과 MVC 아키텍처 DispatcherServlet은 스프링의 웹 기술을 구성하는 다양한 전략을 DI로 구성해서 확장하도록 만들어진 스프링 서브릿/MVC의 엔진과 같은 ..

SPRING 2023.06.30 0

[백준/구현] 10431 줄세우기(Java, 자바)

https://www.acmicpc.net/problem/10431 10431번: 줄세우기 초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1 www.acmicpc.net 단순하게 생각하면 금방 풀 수 있다. 예를 들어 6 2 3 7 5 1 4 로 주어졌을 때, 각 학생이 옮겨지는 횟수는 자신보다 앞에 있는 수 중에서 자신보다 큰 수의 개수이다. 위의 예시로 봤을 때 다음 표와 같이 된다. 키 6 2 3 7 5 1 4 옮겨지는 횟수 0 1 1 0 2 5 3 여기서 옮겨지는 횟수를 모두 더하면 된다. 코드로 옮겨보면 간단하다. int cnt = 0; for (int i =..

구현 2023.06.29 0

[백준/수학] 10158 개미(Java, 자바)

https://www.acmicpc.net/problem/10158 10158번: 개미 가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오 www.acmicpc.net 이 문제는 시간복잡도가 아주 중요한 문제이다. 단순하게 생각하면 금방 풀 수 있지만, 그러면 대다수는 시간복잡도에 걸린다. 내가 처음으로 제출한 코드는 다음과 같다. static void pro() { int deltaX = 1; int deltaY = 1; while (t-- > 0) { if (p == w) deltaX = -1; if (p == 0) deltaX = 1; i..

수학 2023.06.28 0

[운영체제] 데드락(Dead Lock, 교착상태)

1. 데드락이란 - 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태입니다. - 즉, 무한히 다음 자원을 기다리는 상태입니다. - 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생합니다. 2. 발생조건 - 데드락의 발생 조건은 다음 네가지 입니다. 네개를 모두 만족하는 경우에 데드락이 발생하며, 이 중 하나라도 만족하지 않는다면 데드락이 일어나지 않습니다. 1) 상호배제 : 자원은 한 번에 한 프로세스만이 사용할 수 있어야 한다. 2) 점유대기 : 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다. 3) 비선점 : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 ..

운영체제 2023.05.30 0

[자료구조] 배열 & 리스트 & 연결리스트

1. Array(배열) - index로 빠르게 값을 찾는 것이 가능 - 데이터가 계속 증가하는 경우, 최대 사이즈를 알 수 없어 부적절 2. ArrayList(리스트) - Array처럼 처음부터 크기를 정하지 않아도 됨. 나중에 크기를 줄이거나 늘릴 수 있음 - index를 가지고 있어 빠른 검색 가능 - 순차적으로 정렬을 해야하므로 데이터 삽입 및 삭제가 느림 3. LinkedList(연결리스트) - 한 노드에 연결 될 노드의 포인터 위치를 가르키는 방식 - index가 없기 때문에 검색이 느림 - 데이터의 삽입 및 삭제가 빠름

자료구조 2023.05.30 0

인기글

[yarn] info There appears to be trouble with your network connection. Retrying... 에러 해결

리액트 프로젝트를 내려받고 이제 yarn 을 설치하려는데 에러가 뜬다. info There appears to be trouble with your network connection. Retrying... 처음도 아니고 거의 매번 일어나는 문제라 아예 정리해두고자 한다. 발생 원인은 1. yarn config proxy 문제 2. 네트워크가 느리거나 해당 패키지 파일이 너무 큰 경우 3. yarn 캐시 문제(+버전문제) 이 정도로 정리 한다는거 같다. 1. yarn config proxy 문제 이 경우에는 아래의 코드를 터미널에 입력해주면 된다. yarn config delete proxy yarn config delete https-proxy 2. 네트워크가 느리거나 해당 패키지 파일이 너무 큰 경우 ..

React 2021.03.08 0

[React] ant-design/ column이 바뀌는 동적 Table

오늘은 컬럼이 바뀌는 동적 테이블을 만들어야한다. 서버에서 받아오는 JSON의 형태는 다음과 같다. 여기서 바뀌는 것은 cols의 개수와 cols의 안에 있는 요소들의 개수이다. 즉 column의 개수와 명칭이 유동적으로 바뀌게 되는 것이다. name이 column의 명칭이 되고 value값이 해당 column의 값으로 들어가야 한다. [ { "cols": [ { "name": "name1", "value": "value1" }, { "name": "name2", "value": "value2" }, { "name": "name3", "value": "value3" } ] }, { "cols": [ { "name": "name1", "value": "value4" }, { "name": "name2", ..

React 2021.03.19 0

[백준/브루트포스] 3085 사탕게임(Python, 파이썬)

www.acmicpc.net/problem/3085 3085번: 사탕 게임 첫째 줄에 상근이가 먹을 수 있는 사탕의 최대 개수를 출력한다. www.acmicpc.net 처음에는 이 문제를 어떻게 풀어야할지 감이 안잡혔는데, 그냥 다 해보면 되는 거였다! 😀 그 이유는 테이블 크기가 50보다 작기 때문이다. 밑에 코드는 시간복잡도가 $O(N^4)$지만 애초에 테이블 크기가 작기 때문에 시간 초과가 나지 않는다. 인접한 두 칸을 고르고 사탕을 교환하는 방법은 상하좌우로 4가지가 있다. 그러나 테이블을 순차적으로 검사했을때, 위로 바꾸는 방법과, 왼쪽으로 바꾸는 방법은 이전에 검사했었으므로 다시 고려할 필요가 없다. 그러므로 밑으로 바꾸는 방법과, 오른쪽으로 바꾸는 방법 두 가지만 고려하면 된다. import..

브루트포스 2021.05.09 1

[ant-design] React를 활용한 Chart 만들기

간단한 그래프를 만들 것이다. 1. 터미널에 다음을 입력해 라이브러리를 받는다. npm install @ant-design/charts 2. column기준으로 만들기 위해 을 사용했다. 컴포넌트는 다음과 같이 작성하면 된다. import React, {Component} from "react"; import {Column} from '@ant-design/charts'; class Graph extends Component { constructor(props) { super(props); this.data = [ { type: 'test1', value: 38, }, { type: 'test2', value: 52, }, { type: 'test3', value: 61, }, { type: 'test4..

React 2021.03.08 0

[백준/수학] 17427 약수의 합2(Python, 파이썬)

www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net - f(A) = A의 약수의 합 - g(N) = f(1) + f(2) + ... + f(N) - N이 주어졌을 때, g(N)을 구하는 문제 우선, 약수를 구하는 방법에는 두가지가 있다. 1. 자연수 N이 주어졌을 때, 1부터 N까지 나누어가면서 나머지가 0인 값을 구하는 방법 2. 자연수 N이 주어졌을 때, 약수는 서로 대칭구조를 이루고 있으므로 1부터..

수학 2021.05.06 2