함량 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

인기글

[AWS] Ubuntu-LTS 18.04에 MariaDB 설치하기(+특정버전 설치하기)

set password for 'root'@'localhost' = password('1234'); 1. apt 업그레이드 apt는 Advanced Packaging Tool의 약자로 패키지들을 관리(설치, 삭제, 업데이트)해주는 툴이다. sudo apt update 2. MariaDB 설치 아래 명령어를 쳐서 DB를 설치해준다. sudo apt-get install -y mariadb-server 특정버전을 설치할 경우 1) 아래 사이트에 접속해서 원하는 버전을 선택한다. https://mariadb.com/downloads/ MariaDB Products & Tools Downloads | MariaDB Find MariaDB downloads, connectors, and tools includin..

[백준/구현] 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

SPA(Single Page Application)와 웹프론트 기술

현재 사용하고 있는 웹 프론트 기술에 대해서 정리가 필요할 듯하여 포스팅해본다. 개발자로 취업하고 제일 먼저 React를 개발했지만 사실 누군가 React가 뭐냐고 물어본다면 설명하기가 어렵다. 내가 쓰는 기술을 제대로 설명도 못한다니....😥 기술 하나하나에 대해 심도깊은 이해보다는 전반적으로 살펴보기 위한 것이다. 부족한 내용이 있다면 앞으로 계속 채워나갈 예정이다. 1. SPA(Single Page Application) 전통적인 웹 전통적인 웹에서 페이지 이동을 하면 서버에 요청을 하면 서버가 HTML 파일을 만들어서 클라이언트에 보내주고, 브라우저가 HTML을 반영해서 보여주기 전 새로고침이 일어난다. 이를 정적 웹 페이지라고 하는데 이는 '클라이언트에게 제공하기 위해 미리 작성되어 서비스되는 ..

React 2022.01.06 0

[백준/DP] 15990 1, 2, 3 더하기 5 (Python, 파이썬)

https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 문제의 조건 - 정수 n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 문제 - 단 같은 수를 두 번 이상 연속해서 사용하면 안된다. - n=4 - 1+2+1 - 1+3 - 3+1 * 조건 때문에 점화식을 그대로 사용할 수 없다. -> 그 조건을 점화식에 넣기 D[i][j] = i를 1, 2, 3의 합으로 나타내는 방법의 수, 마지막에 사용한 수는 j ... + 1 = i -> D[i][1] = D[i-1][2] + D[i-1][3] .....

DP 2021.08.01 0

[백준/DP] 11726 2×n 타일링 (Python, 파이썬)

https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2*n 직사각형을 1*2, 2*1 타일로 채우는 방법의 수 D[n] = 2 X n 직사각형을 채우는 방법의 수 2*n 직사각형이 있을 때, 가장 오른 쪽에 타일을 놓을 수 있는 방법은 총 2가지가 있다. 1) 세로 블록이 하나 오는 경우 : D[n-1] 2) 가로 블록 두개 오는 경우 : D[n-2] D[n] = D[n-1] + D[n-2] 2*5의 경우 수는 (1) 2*3경우에서 블록 두 개를 더 붙이는 것과 (2)..

DP 2021.07.19 0