Posts by Category

Algorithm

Algorithm, kakao, 기둥과 보 설치

2020-05-27

내가 시도한 풀이1 보와 기둥을 1,2로 정하고 설치가 되면 해당 숫자를 넣는식으로 했다. 문제점 : 두가지를 한꺼번에 저장하려니까 복잡했다. 해결방법 : 보와 기둥 배열을 각각 사용한다.

Algorithm, BinarySearch & lower bound / upper bound

2020-03-26

BinarySearch 이분탐색 정렬되어있어야 한다 O(n)(worst case) : 처음 부터 끝까지 원하는 값을 찾지 못할때 O(long n) : 탐색 대상을 절반씩 줄여나가기 때문에 탐색의 횟수는 log2N이 된다.

Algorithm, Trie

2020-03-24

Trie(트라이) 문자열에서의 검색을 빠르게 해주는 자료구조 정수형 자료형에 대해 이진검색트리를 이용하면 O(logN)의 시간만에 검색가능하다 하지만 최대 길이가 M이라면 O(MlogN)의 시간 복잡도를 가지게 된다 이를 개선 한것이 트라이 !! O(M)

Algorithm, BFS 문제

2020-03-24

BFS 사용 특징 가장빠른길을 찾을 수 있다 다녀간 길을 체크해줘야한다

Algorithm, Union Find

2020-03-23

Uionn Find 서로소 집합 그리고 병합 찾기 집합 이라고도 불리며 여러 서로소 집합의 정보를 저장 하고 있는 자료구조를 의미한다

Algorithm, boj, 알약(4811)

2020-03-21

문제바로가기 ``` [문제] 70세 박종수 할아버지는 매일 매일 약 반알을 먹는다. 손녀 선영이는 종수 할아버지에게 약이 N개 담긴 병을 선물로 주었다.

Algorithm, boj, 다리놓기(1010)

2020-03-10

문제유형 dp 해결 ``` n=3,m=5이면 1마을이 1마을에 다리 건설 후 나머지 2마을과 4마을을 이어야하고 1마을이 2마을에 다리 건설 후 나머지 2마을과 3마을을 이어야하고 1마을이 3마을에 다리 건설 후 나머지 2마을이 2마을을 이으면 된다.

Algorithm, programmers, 저울(42886)

2020-03-10

문제유형 greedy 해결 늦게 들어온 순서로 정렬하여 가장 늦게 들어온 곳에 카메라를 설치한다. 카메라 설치 시점 뒤에서 나가버린다면 기존 카메라 지점 보다 뒤에, (시작지점에서) 하나 더 설치한다 그림을 그려서 확인하면 더 쉽다

Algorithm, programmers, 배달(12978)

2020-03-10

문제유형 다익스트라 알고리즘 해결 추의 순서대로 정렬한다 모든 추를 더한 무게 < 다음 추의 무게 이면 모든추를 더한 무게+1의 공백이 생긴다

Algorithm, boj, 디지털티비(2816)

2020-02-27

문제유형 greedy 해결 스페셜 저지이므로 답이 여러개일수있다 kbs1과 kbs2의 위치를 찾는다 kbs1까지 1로 내려가서 4로 올린다 만약 kbs2 , kbs1 순서이면 kbs1이 4로 올리면서 kbs2를 한칸 아래로 보내기때문에 kbs2위치에...

Algorithm, boj, 30(10610)

2020-02-26

문제유형 greedy 해결 3의 배수를 구하는 문제이다 3,6,9,12,15,18… 3의 배수는 각자리 수의 합이 3의 배수가 된다

Algorithm, boj, 크게만들기(2812)

2020-02-24

문제유형 greedy 해결 처음도전 실패 3자리를 뽑는 거라면 0부터 전체길이-3까지 중 가장큰수를 찾고, 그 가장 큰 수 다음부터 전체길이-2까지 중 가장큰수찾고…이런식으로 구했는데 (1 ≤ K < N ≤ 500,...

Algorithm, boj, 멀티탭 스케줄링(1700)

2020-02-07

문제유형 greedy 문제 한마디 어려운 문제가 아닌데 해결방법을 코드로 구현하는게 힘들었다 해결 가장 나중에 사용할 기계의 콘센트를 뽑으면 된다

Algorithm, kakao2018 프렌즈4블록(17679)

2020-01-03

어려웠던점 개념적으로 해결할 방법은 알아냈으나, 코드로 구현하기가 어려웠다. 맵을 새로 리뉴얼 하는 부분이 어려웠다 (해결 코드의 down()함수) 네개를 비교 하는 부분은 for문과 배열을 이용해서 쉽게 구현할 수 있었다

Algorithm, kakao2018 프렌즈4블록(17679)

2020-01-03

어려웠던점 개념적으로 해결할 방법은 알아냈으나, 코드로 구현하기가 어려웠다. 맵을 새로 리뉴얼 하는 부분이 어려웠다 (해결 코드의 down()함수) 네개를 비교 하는 부분은 for문과 배열을 이용해서 쉽게 구현할 수 있었다

Algorithm, boj, 내려가기(2096)

2019-12-14

풀이 1번칸은 윗줄의 1번,2번칸에서 내려올 수 있다 2번칸은 윗줄의 1,2,3번칸에서 내려올 수 있다 3번칸은 윗줄의 2,3번칸에서 내려올 수 있다 이를 이용해서 식을 도출할수있다 if(j==0) dpmin[i][j] = Math.min(dpmin[i-1]...

Algorithm, boj, 욕심쟁이 판다(1937)

2019-12-12

풀이 (0,0)에서 시작하는게 아니므로 모든 지점을 돌면서 확인해 봐야한다 ( 주석처리 1번 ) 메모이제이션 기법을 사용해야하므로 dp값이 있는 지점은 그 값을 그대로 반환한다 ( 주석처리 2번 ) 현재 대나무 숲보다 다음 칸 대나무 숲이 더 크다면 이동하고 (+1) ...

Algorithm, boj, 가장 긴 바이토닉 부분 수열(11054)

2019-12-11

풀이 dp[i]는 i번째의 수가 기준이 되어 바이토닉 수열이 될때 최대의 길이 이다 바이토닉 수열은 S1 < S2 < … Sk-1 < Sk > Sk+1 > … SN-1 > SN 를 만족 해야 하므로 기존에 증가하는 부분수열, 감소하는 부분수...

Algorithm, boj, 점프(1890)

2019-12-11

틀린이유 result 변수를 매번 생성하지말고 곧장 dp에 저장하는 방법으로 변경해야 한다. dp의 초기값은 -1 : 해당 지점은 지나간적이 없다. 해당 지점을 지나갈때 dp의 초기값을 0으로 변경해주고 지나가면서 곧장 경우의 수를 더해준다.

Algorithm, boj, 01타일(1904)

2019-12-11

풀이 점화식이 쉽게 도출된다. 주의할점 : 개수를 15746으로 나눈 나머지를 출력한다. dp[i] = dp[i-1]%15746 + dp[i-2]%15746; dp[i] %= 15746; 15746으로 나눈 나머지로 dp값을 구해야 한다.

Algorithm, boj, 내리막길(1520)

2019-12-10

틀린이유와 풀이 boolean[][] visitied을 이용해서 일반 dfs로 풀어주면 타임아웃이 발생한다 dp[i][j] = (i,j)지점에서 끝까지 갈수있는 경로 개수로 지정해서 메모이제이션을 이용할것 ex) dp[2][3] = 1이라면 2,1->2,2->...

Algorithm, boj, 타일채우기(2133)

2019-12-09

풀이 n이 홀수일때 모두 채울수없다 n=2 일때 3가지는 고정 n=4 일때 2+2=4 이므로 2dp[2] + 4dp[0] ; 고정3가지 말고 4개를 한번에 만들수 있는 방법은 2가지 문제 해결의 핵심 : 길이가 2씩 늘어날때마다 2가지 경우가 계속 추가되는 것을 반...

Algorithm, boj, 카드 구매하기(11052)

2019-12-09

풀이 4장을 사고싶다면 bottomup방법을 사용했다. 1장을 살수 있는 최대값 dp[1] 2장을 살수 있는 최대값 dp[2] = Math.max(dp[2], card[1]+dp[1]); dp[2] = Math.max(dp[2], card[2]+dp[0]);...

Algorithm, boj, 가장 큰 증가 부분 수열(11055)

2019-11-29

풀이 입력 배열의 길이와 같은 dp배열을 생성한다 dp[i]에는 arr[i]값이 가장 큰 값으로 하는 부분배열의 길이가 입력된다 가장 작은 부분배열의 크기는 1이 되므로 dp배열의 초기값을 1로 해준다 i는 두번째 수부터 마지막 수가 되고, 각각의 수의 이전수가 해...

Algorithm, boj, 쉬운 계단 수(10844)

2019-11-28

풀이 (r, c)에 있으면, (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있다는 점에 주목한다 방한칸을 옮길때마다 (dp[i][j]) 해당 방의 위, 왼쪽옆, 왼쪽대각선위의 방 중에 가장 큰값과 해당 방의 값을 더해 최적의 값을 구한다.

Algorithm, boj, 1,2,3더하기(9095)

2019-11-26

풀이 1,2,3의 합으로 나타낼수 있고 숫자 하나이상 사용해야 한다 4 = 1+3, 2+3, 3+1, 4+0 (x) 이므로 dp[3] + dp[3] + dp[1] 5 = 1+4, 2+3, 3+2, 4+1, 5(x) 이므로 4를 나타낼수 있는 방법은 dp[4], ...

Algorithm, boj, 1로만들기(1463)

2019-11-26

풀이 4 => 4/2=2, 2/2=1 또는 4-1=3, 3/3=1 두가지 방법이 있다 2로 나누어지면 ==> dp[i] = Math.min(dp[i-1]+1, dp[i/2]+1); 3으로 나누어지면 ==> dp[i] = Math.min(dp[i-1]+1...

Algorithm, programmers, 스티커2(12971)

2019-11-25

풀이 Math.max(현재 스티커 떼고 + 현재스티커-2의 dp , 현재스티커-1의 dp) 가 기본 점화식이 된다. 원형이므로 첫번째 스티꺼를 떼거나 떼지않을때 두가지를 생각해야 한다. 첫번재 스티커를 뗀다면, 마지막 스티커는 포함 하지 않는다. 스티커틑 10만개 ...

Algorithm, boj, 회의실배정(1931))

2019-11-14

풀이 회의의 끝나는 시간이 빠를수록 남아있는 시간이 많아진다. 즉, 더 많은 회의를 할 수 있다 배운점 끝나는 시간에 따라 정리를 할때 회의 클래스를 지정해서 Comparable을 사용했는데, 이렇게 말고 Arrays.sort로도 정렬할 수 있다.

Algorithm, programmers, 종이접기(62049))

2019-11-12

풀이 재귀 함수로 해결 기저사례 : 현재 접은 횟수 == 접어야 되는 횟수 한번 접으면 현재 접힌 왼쪽 부분 = 이전에 접은 부분과 같고 현재 접힌 오른쪽 부분 = 이전에 접은 부분과 반대 현재 접힌 부분의 가운데는 무조건 0 ...

Algorithm, programmers, N으로 표현(42895)

2019-11-12

못풀어서 다른 분의 풀이 봄 풀이 기저사례 연산횟수 8 초과 연산결과 == number 이전까지의 연산결과와 주어진 N또는 NN, NNN, NNNN, NNNN…의 사칙연산을 반복적으로 한다. 구현 ...

Algorithm, MST(최소 신장 트리)

2019-11-12

Spanning Tree 그래프 내의 모든 정점을 포함 하는 트리 그래프에서 일부 간선을 선택해서 만든 트리 Spanning Tree 특징

Algorithm, programmers, 타일장식물(43104)

2019-11-11

풀이 0부터 n까지의 노드를 차례로 깊이우선으로 탐색한다. 탐색한 노드는 visited를 이용하여 true로 변경해준다. 탐색이 완료된 노드의 다음 노드를 방문했는지 visited로 확인하고, 방문하지 않았다면 해당 노드를 깊이우선으로 탐색한다. 깊이 우선으로 탐색...

Algorithm, programmers, 네트워크(43162)

2019-11-08

풀이 0부터 n까지의 노드를 차례로 깊이우선으로 탐색한다. 탐색한 노드는 visited를 이용하여 true로 변경해준다. 탐색이 완료된 노드의 다음 노드를 방문했는지 visited로 확인하고, 방문하지 않았다면 해당 노드를 깊이우선으로 탐색한다. 깊이 우선으로 탐색...

Algorithm, programmers, 단어변환(43163)

2019-11-08

풀이 시작이 같고, 시작으로 부터 가장 짧은 해결책을 찾는것이므로 넓이 우선탐색을 하여 답에 도달하면 끝내는 방법을 택해야 했다. 두 단어를 비교하는 방법이 여러가지가 있을수 있는데 내 방법은 같은 위치에서 한 글자를 빼서 같은지 비교하는것 ...

Algorithm, programmers, 타겟넘버

2019-11-07

첫번째~마지막 숫자를 더하거나 빼는 경우의 수가 있으므로 두가지의 경우를 재귀적으로 실행한다 최종결과가 타겟과 같으면 answer+1

Algorithm, 알고리즘 문제해결 전략, brute-force

2019-11-01

brute-force 무식하게 푼다 완전탐색 컴퓨터의 빠른 계산을 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법 ex. 재귀호출 방법 가능한 모든 답의 후보를 만드는 과정을 여러 개의 선택으로 나눕니다. 각 선택은 ...

Algorithm, boj, 1912(연속된 숫자), dp

2019-10-23

DP(다이나믹 프로그래밍) 주어진 문제를 여러 개의 부분문제들로 나누어 푼 다음, 그 결과들로 주어진 문제를 푼다 dp는 겹치는 문제가 발생하기 때문에 메모제이션 등이 필요하다 큰 문제의 작은 부분은 항상 최적이다

Algorithm, boj, 1149(RGB거리), dp

2019-10-20

DP(다이나믹 프로그래밍) 주어진 문제를 여러 개의 부분문제들로 나누어 푼 다음, 그 결과들로 주어진 문제를 푼다 dp는 겹치는 문제가 발생하기 때문에 메모제이션 등이 필요하다 해결하지 못한 원인 누적된 결과로 해결하는 것이기때문에 누적된것은 항상 최선이...

Algorithm, boj, 1932(정수 삼각형), dp

2019-10-20

DP(다이나믹 프로그래밍) 주어진 문제를 여러 개의 부분문제들로 나누어 푼 다음, 그 결과들로 주어진 문제를 푼다 dp는 겹치는 문제가 발생하기 때문에 메모제이션 등이 필요하다 해결하지 못한 원인 dp문제는 겹치는 문제가 발생한다. 즉, 앞에서 누적된 결...

Algorithm, boj, 2579(계단오르기), dp

2019-10-19

DP(다이나믹 프로그래밍) 주어진 문제를 여러 개의 부분문제들로 나누어 푼 다음, 그 결과들로 주어진 문제를 푼다 dp는 겹치는 문제가 발생하기 때문에 메모제이션 등이 필요하다 문제 풀이 마지막 계단의 최대 점수를 구하는 DP문제이다 첫번째 계단을 밟...

Algorithm, DP

2019-10-17

DP(다이나믹 프로그래밍) 주어진 문제를 여러 개의 부분문제들로 나누어 푼 다음, 그 결과들로 주어진 문제를 푼다 dp는 겹치는 문제가 발생하기 때문에 메모제이션 등이 필요하다 메모제이션 : 함수의 결과를 저장하는 장소를 마련해두고, 한 번 계산한 값을 저장해 뒀다 재...

Algorithm, programmers, 42885(구명보트)

2019-10-15

난이도 하 / 탐욕법 탐욕법 정의 : 미리 정한 기준에 따라서 매번 가장 좋아 보이는 답을 선택하는 알고리즘 최적화 문제를 푸는데 사용한다 근시안적으로 해를 구할 당시에 가장 최적인 해를 구한다 동적 계획법보다 효율적이지만 반드시 최적의 ...

Algorithm, boj, 7576(토마토)

2019-10-11

DFS 풀이 과일판에서 익어있는 과일의 위치를 찾아 큐에 넣는다 다음날, 전날 익은 과일의 개수만큼 큐에서 과일위치를 꺼낸다 꺼낸 위치에서 안익은 과일의 위치를 찾아 익히고 큐에 넣는다 큐가 빌때까지 반복한다

Algorithm, boj, 12403(경로찾기)

2019-10-11

DFS 풀이 좌표를 입력받아 서로 연결된 간선의 정보를 list 배열에 넣는다. list배열의 내용을 dfs로 확인하며 확인된 노드는 result에 넣는다.

Algorithm, boj, 2267(단지번호붙이기)

2019-10-10

BFS (0,0) 부터 (size,size) 까지 돌면서 방문하지 않은 집을 찾는다. 집을 찾으면, 단지+1을 해주고 해당 단지의 집들을 BFS로 방문하며 집의 숫자를 구한다. 틀렸다는데…왜 틀렸을까? 헝헝 ㅠㅠ

Algorithm, JAVA, Permutation (순열)

2019-10-01

순열이란 n 개의 값 중에서 r 개의 숫자를 모든 순서대로 뽑는 경우를 말합니다. 예를 들어 [1, 2, 3] 이라는 3 개의 배열에서 2 개의 숫자를 뽑는 경우는

Algorithm, JAVA, 퀵정렬

2019-10-01

퀵정렬 리스트 가운데서 하나의 원소를 고름(pivot 선정) pivot 앞에는 pivot보다 작은 값이 오고, pivot 뒤에는 pivot보다 큰 값들이 오도록 리스트를 둘로 분할한다. 분할된 두 개의 리스트에 대해 재귀함수를 통해 이 과정을 반복한다. 시간복잡도 ...

Algorithm, boj, 2309(일곱 난쟁이)

2019-10-01

문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 ...

Back to top ↑

etc

Spring, chatting 프로그램 만들기, Reactive란?

2020-06-16

Reactive 막힘없이 흘러다니는 data(event)를 통해 사용자에게 자연스러운 응답을 주고 규모 탄력적으로 리소스를 사용하며 실패에 있어서 유연하게 대처한다 모든 지점에서 블럭 되지 않게 하자 oop와 같은 패러다임 모든 것을 비동기적인 data의 strea...

Spring, chatting 프로그램 만들기, websocket

2020-06-16

채팅 서비스 구현하기 팀원들과 velog를 클론코딩하기로 했다. 큰 도메인은 게시물, 개인페이지였고 팀원은 백엔드 개발자 세명이여서 일 분배가 어려웠다. 따라서 나는 그 동안 구현 해보고 싶었던 채팅 서비스를 구현해서 붙여보기로 했다.

만개의 레시피 클론 코딩, git flow

2020-05-28

문제1. git으로 협업하기 git으로 협업을 해본 경험이 없어 내가 작성한 코드를 어떻게 로컬 저장소에 올리는지 전체적인 부분에 대해 팀원에게 질문했다.

쉘 스크립트란?, 쉘 스크립트 작성하기

2020-05-13

개요 요새 면접 스터디를 하면서 스터디 과제를 깃허브에 정리하고 있다. 스터디 전후에도 계속 공부하려고 정리하고 있는데, 정리하는 것이 굉장히 단순 반복 작업이라 귀찮아 죽겠다.. 제일 귀찮은게 구글시트에서 스터디 주제를 복사 -> 복사한것에 공백을 하나씩 제거 ...

Linux, 명령어 - xagrs

2020-05-12

xargs 보통 기본적인 명령어(find, ls, cat) 뒤에 파이프로 추가하여 사용함 간단히 설명하면 파이프 이전의 내용을 인자로 받아 명령어를 실행하는 구조

Linux, 명령어 - grep

2020-05-12

grep grep은 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어입니다. 리눅스에서 가장 많이 사용되는 명령어 중 하나이죠.

Linux, 명령어 - find

2020-05-12

find find는 리눅스에서 파일 및 디렉토리를 검색할 때 사용하는 명령입니다. 이름 그대로 리눅스에서 접근할 수 있는 파일 시스템에서, 파일 및 디렉토리를 “찾는(find)” 것이죠.

Nginx와 Apache

2020-05-03

웹 서버 웹 서버는 HTTP 프로토콜을 통해 읽힐수 있는 문서를 처리하며 일반적으로 웹 애플리케이션의 앞단에 배치되곤 한다. 동적인 리소스는 WAS에게 처리하도록 하고 정적인 리소스를 보다 효율적으로 처리하기 위한 방법일 수 있다.

Travis CI, AWS S3, CodeDeploy 연동

2020-05-02

목표 CI를 이용해서 git에서 push만 해도 테스트와 빌드가 자동으로 되도록 한다. git push -> Travis CI(배포 파일 생성) -> AWS S3(zip형태로 배포 파일 저장) -> CodeDeploy(AWS S3의 파일을 EC2에 저장)

Doker, Doker Container 생성

2020-04-29

pull 원격 저장소에 이미지가 저장되어있고 git처럼 pull해서 이미지를 가져올수있다 docker pull <이미지이름>:<태그> docker pull ubuntu

GitHub에 저장소 만들고 작성한 코드 올리기

2020-04-25

상황 포트폴리오를 작성중입니다. 완성된 정적페이지를 깃허브에 올리고 깃허브 페이지로 보고싶습니다. 로컬의 코드를 저장소에 올리고싶습니다. 로컬에서 코드작성이 완료되었고, 깃허브에 저장소를 만들었습니다. git clone까지 한 상태입니다. visual studi...

WEB, Crawling, 취업정보 크롤링하기

2020-03-01

개요 노트북을 켜면 매일 확인하는 것들을 자동화 하려고한다 python언어를 배울필요 없이 java를 통해 클롤링 할예정이다 java가 조금 느리다고 하지만 괜찮다 많은 양을 확인할것이 아니다 매일 밤 aws에서 crontab으로 ...

Back to top ↑

JAVA

JAVA, Stream, Lambda

2020-06-05

Stream (java.util) Collection의 요소를 하나씩 참조하여 Lambda식으로 처리할 수 있게 해주는 일종의 반복자

JAVA, JVM

2020-04-23

JVM : 자바 가상 머신 자바(byte 코드)를 실행하기 위한 기계

JAVA, BufferedReader & BufferedWriter

2020-01-14

BufferedReader 입력되거나 출력할 데이터를 바로 전달받거나 전달하지 않고 중간에 버퍼링이 된 후에 작업한다 버퍼를 거쳐 간접적으로 작업되기 때문에 시스템의 데이터처리 효율성을 높여준다

JAVA, 예외처리

2020-01-09

오류란? 컴파일 오류 : 프로그램 코드 작성 중 발생하는 문법적 오류 실행 오류 : 실행 중인 프로그램이 의도하지 않은 동작을 하거나(bug) 프로그램이 중지되는 오류(runtime error) 자바는 예외 처리를 통해 프로그램의 비정상 종료를 막고 log를 남길 수 ...

JAVA, 람다식

2020-01-09

람다식 (JAVA8 ~) 자바에서 함수형 프로그래밍을 구현하는 방식 함수형 프로그래밍이란 외부 변수를 사용하지 않는다 그렇기때문에 외부에 다른 영향을 주지 않는다. 따라서 병렬처리가 가능해진다 클래스를 생성하지 않고 함수의 ...

JAVA, SE,JDK,JRE,JVM

2020-01-08

Java SE(Java Platform, Standard Edition) 자바의 표준안이며 어떤 문법적인 구성을 가졌는지와 같은 것들을 정의하고있다 구체적인 s/w가 아니며 설계도라고 할 수 있다. 이 명세서에 따라서 Java가 만들어지게 된다 최신; 13버전

JAVA, Object 클래스

2020-01-07

Object 클래스 모든 클래스의 최상위 클래스 java.lang.Object 안에 있는 클래스이다 모든 클래스는 Object클래스를 상속받음 모든 클래스는 Object클래스의 메서드를 사용할 수 있음 모든 클래스는 Object클래스의 일부 메서드를 재정의 하여...

JAVA, Collections Framework

2019-12-15

1.컬렉션 프레임웍 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리 Collection : 데이터 그룹 Framework : 표준화된 프로그래밍 방식 JDK1.2부터 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 ...

JAVA, iterator

2019-11-09

Iterator 자바의 컬렉션 프레임웍에서 컬렉션에 저장되어 있는 요소들을 읽어오는 방법을 표준화 한것중 하나

JAVA, StringBuilder

2019-11-09

StringBuilder를 사용하는 이유 String String객체를 서로 더하는 행위는 메모리 할당과 해제를 발생시키며 더하는 연산이 많아진다. 즉 성능적으로 좋지 않다 String str1 = "ab" String str2 = "cd" System.out.prin...

JAVA, singleton패턴(static 응용)

2019-10-23

static 응용 : singleton 패턴 자동차 회사는 단 한개만 존재해야 한다 [singleton패턴 이란] 전 시스템에 단 하나의 인스턴스만이 존재하도록 구현하는 방식 ex)날짜, 서울의 날짜는 단한개. 뉴욕의 날짜는 단한개.

JAVA, 변수유형

2019-10-23

static 여러 개의 인스턴스가 같은 메모리의 값을 공유하기 위해 사용한다 프로그램이 메모리에 load될때 데이터 영역의 메모리에 생성된다 —> 인스턴스의 생성과 관계없이 클래스 이름으로 직접 참조 한다 클래스 변수 라고도 한다

JAVA, 인터페이스

2019-10-23

인터페이스 (interface) iterface implements 모든 메서드가 추상 메서드로 이루어진 클래스 설계용으로 사용한다 형식적인 선언만 있고 구현은 없다 interface 인터페이스 이름{ // 인터페이스에 선언된 모든 변수는 public s...

JAVA, 추상 클래스&템플릿 메서드 예제

2019-10-22

동일한 메서드들을 클래스의 상태에 따라 다르게 구현하게 될때 추상 클래스를 사용한다 상위(PlayerLevl) 클래스를 핸들링하면 하위 클래스(BeginnerLevel, AdvancedLevel, SuperLevel)를 모두 핸들링 할 수 있다

JAVA, 추상 클래스&템플릿 메서드

2019-10-22

추상 클래스란 ? (abstract class) 추상 메서드를 포함한 클래스 추상 메서드는 구현코드 없이 메서드의 선언만 있음 동일한 메서드를 클래스의 상태에 따라 다르게 구현하게 될때 추상 클래스를 사용한다

JAVA, 변수와 메서드/생성자

2019-10-15

변수와 메서드 1. 선언위치에 따른 변수의 종류 [인스턴스변수] 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다. 인스턴스마다 고유한 상태를 유지해야 하는 속성의 경우, 인스턴스변수로 선언한다. new할때 생성 ...

JAVA, 클래스와 객체

2019-10-15

객체지향 언어 코드의 재사용성이 높다 -기존의 코드 이용 코드의 관리가 용이하다 -코드간의 관계 이용 신뢰성이 높은 프로그래밍을 가능하게 한다 -제어자와 메서드를 이용해 데이터 보호하고 올바른 값 유지 -코드의 중복 제거, 코드 불일치로 인한 오작동 방지

JAVA, Comparable / Comparator

2019-10-09

배열이나 Collection 프레임워크 등에서 sort()를 사용하면 컴퓨터가 알아서 정렬 해준다. Arrays.sort(), Collection.sort() 여기서 사용되는 sort()는 Comparable 구현에 의해 정렬 된것이다.

Back to top ↑

Spring

Spring, JPA 기본키 매핑

2020-02-24

@Id 기본키 할당하는 방법은 직접할당, 자동생성 두가지 방법이 있다. DBMS마다 sequence, auto_increment등 기본키를 자동생성 방법이 다르다 Spring Data JPA는 이를 해결하기 위해 4가지 자동 생성 방법을 제공한다.

Spring, @Contorller & @RestController 차이

2020-02-03

기존의 MVC 컨트롤러 (@Controller) 주용도 : view(화면)를 리턴 @ResponseBody를 사용하여 객체 리턴 가능 Restful 웹서비스 컨트롤러 (@RestController) 주용도 : 데이터 리턴 view필요 없이 객체를 반...

Spring, 2-Layered 아키텍쳐 스타일

2020-02-03

Service Controller는 DAO객체를 직접 이용해서는 안되며, 반드시 비즈니스 컴포넌트를 이용하여 사용자의 요청을 처리해야 한다. DAO객체를 직접 사용하면 문제가 발생한다

Spring, JDBC

2020-01-30

JdbcTemplate 클래스 JDBC 프로그램을 이용하려면 작성해야할 코드가 너무 많다 DB연동에 필요한 자바 코드를 처리해주고 개발자는 SQL 구문만 관리할 수 있도록 지원한다 GoF디자인 패턴 중 템플릿 메소드 패턴이 적용된 클래스이다 템플릿 메소드 패턴 : ...

Spring, Spring Framework AOP

2020-01-29

AOP 로깅, 예외, 트랜잭션 처리 같은 부가적인 코드(횡단관심)로 인해서 비즈니스 메소드가 복잡해질때가 있다 핵심관심 : 핵심 비즈니스 로직 AOP를 이용하여 관심 분리를 하므로써 클래스의 응집도를 높일 수 있다

Spring, Spring Framework란

2020-01-29

프레임워크 개발에서 기본이 되는 뼈대나 틀을 제공해준다 프레임워크 : 애플리케이션의 기본 아키텍쳐제공 개발자 : 그 뼈대에 살을 붙이는 작업

Spring, RestAPI

2020-01-14

다양한 환경들을 지원한다 (모바일, 웹..) 서로 다른 front-end를 이용하여 다양한 환경들을 지원한다, 하나의 back-end

Spring, PSA

2020-01-13

PSA Potable Service Abstraction 잘 만든 인터페이스(PSA) 내 코드는 변경하지 않아도 원하는 환경에 맞게 쉽게 변경할 수 있다

Spring, AOP

2020-01-10

AOP 흩어진 코드를 한 곳으로 모은다 [나온 배경] 똑같은일을 하는데 여러곳에 흩어져있는 코드가 있을때, 그 코드를 수정하려면 사용한곳을 모두 찾아서 수정해야한다 예제

Spring, DI, IoC

2020-01-10

Dependency Injection 컨테이너가 직접 객체들 사이에 의존관계를 처리하는 것. Setter Injection , Constructor(생성자) Injection 의존성이 삽입된다는 의미로 IoC를 DI라는 표현으로 사용합니다.

Spring, Maven, Gradle, Logbac

2020-01-07

Build Tool 빠른 기간동안에 계속해서 늘어나는 라이브러리 추가 프로젝트를 진행하며 라이브러리 버전 동기화 이 두가지를 위해 초기의 JAVA빌드 도구로 Ant라는 도구를 많이 사용했으나 이도구를 보완하기 위해 Maven,Gradle이 등장했다.

Back to top ↑

실전jsp강좌

WEB, 실전jsp강좌, MVC패턴

2020-01-11

MVC란 Model,View,Controller의 약자 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴 “어떻게 나눌것인가”에 대한 해답 중 하나이다. 특정한 역할들에 대해 역할 분담을 하는 가이드라인을 제시한다 Model :...

WEB, 실전jsp강좌, JSTL

2019-12-09

JSTL(JSP standard Tag Library) JSP의 경우 HTML 태그와 같이 사용되서 전체적인 코드의 가독성이 떨어진다. 이러한 단점을 보완하고자 만들어진 태그 라이브러리가 JSTL이다. JSTL은 Tomcat컨테이너에 포함되어 있지 않으므로 별도의 설치...

WEB, 실전jsp강좌, ExpressionLanguage

2019-11-29

Experssion Language EL이란, 표현식 또는 액션 태그를 대신해서 값을 표현하는 언어이다 ex) 액션태그 : ex) (표현식) : <%= value %>, (EL) : ${value}

WEB, 실전jsp강좌 & DAO/DTO,prepareStatement객체, DBCP

2019-11-02

DAO (Data Access Object) DB에 접속해서 데이터를 추가/삭제/수정 등의 작업을 하는 클래스 일반적인 JSP, Servlet 페이지내에서 DB작업을 함께 기술할 수 있지만, 유지보수 및 코드의 모듈화를 위해 별도의 DAO클래스 만들어 사용한다

WEB, 실전jsp강좌 & database 이용

2019-11-01

DB연결 순서 JDBC 드라이버 로드 / DriverManager 메모리에 mysqlDriver가 로드 된다 Class.forName("com.mysql.jdbc.Drvier"); 데이터베이스 연...

WEB, 실전jsp강좌, 자바빈

2019-10-28

빈(bean) 이란? 반복적인 작업을 효율적으로 하기 위해 사용 java언어의 데이터(속성)와 기능(메소드)으로 이루어진 클래스 jsp 페이지를 만들고, 엑션태그를 이용하여 빈을 사용한다 빈을 만든다 : getter,setter있는 class파일을 만든다

WEB, 실전jsp강좌, 쿠키&세션

2019-10-24

http프로토콜 특징 웹 브라우저에서 서버로 요청 후 서버는 웹 브라우저에 응답한다 응답 후에 서버는 클라이언트와 관계를 끊어버린다. 쿠키의 필요성 클라이언트의 정보를 유지하기 위해 서버에서 생성, 클라이언트 측에 특정 정보 저장한다 서버에 요청 할...

WEB, 실전jsp강좌, 액션태그

2019-10-24

액션태그 jsp페이지 내에서 어떤 동작을 하도록 지시하는 태그 ex. 페이지 이동, 페이지 포함(include) 등

WEB, 실전jsp강좌, servlet-form태그

2019-10-24

HTML FORM 태그 form태그는 서버쪽으로 정보를 전달할 때 사용 input type : 태그 종류 지정 (ex. text, submit, checkbox…) name : input 태그 이름 value : name에 해당 하...

WEB, 실전jsp강좌, 태그/동작원리/내부객체

2019-10-24

Servlet : JAVA언어로 문서를 작성, 출력객체를 이용해여 HTML코드 삽입 (CONTROLLER) JSP : HTML코드에 JAVA언어를 삽입해서 동적 문서를 만들수 있다 (VIEW) JSP태그 종류 ||표현|설명| |—|:—-:|:—:| |지시자|...

WEB, JSP,Servlet 맛보기

2019-10-23

JSP 특징 동적 웹 어플리케이션 컴포넌트 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용 JSP는 서블릿으로 변환되어 실행 MVC패턴에서 View로 이용된다

Back to top ↑

WEB

WEB, boostcourse, Servlet(Request, Response 객체)

2019-10-15

들어가기전에 HttpServletRequest : 클라이언트가 서버에게 보낸 요청을 추상화한 객체 HttpServletResponse : 서버가 클라이언트에게 응답하기 위한 정보를 추상화한 객체

WEB, boostcourse, FE, css layout-2

2019-10-15

배경색이 사라지게 된 이유? [원인] float를 사용했기 때문에 떠있게 되고, .wrap는 .left와 .right를 자기 자식으로 생각하지 않게 되었다 [해결] overflow 속성을 주면 float를 자기 자식으로 인식하게 되어있다

WEB, boostcourse, FE, css layout-1

2019-10-15

display (block, inline, inline-block) position (static, absolute, relative, fixed) float (left, right) 1. 블록으로 쌓이는 엘리먼트(display:block) di...

WEB, boostcourse, Servlet&Lifecycle

2019-10-14

Servlet URL 요청을 처리하는 프로그램 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램의 역할 서블릿을 정의 해보면 서블릿은 WAS에서 동작하는 JAVA 클래스이다 서블릿은 HttpServlet 클래스를 상속받아야 ...

WEB, boostcourse, 웹의 동작 (HTTP 프로토콜 이해)

2019-10-14

들어가기 전에 사람과 사람이 전화 통화를 하기 위해서 몇가지 규칙이 필요하다 서로 알아들을 수 있는 말을 사용하고, 한쪽이 말을 할때는 다른쪽에서 들어야 한다 전화 연결이 끊어지면 대화를 더 할 수 없다 웹 브라우저 & 웹 서버 간에도 서로 통신 하기 위해서...

WEB, boostcourse, Apache Tomcat, WAS

2019-10-14

Apache 아파치 재단에서 만든 sw 정적인 데이터를 처리하는 웹서버 클라이언트가 get,post,delete 등의 메소드를 이용해 –요청–> 서버가 그에 대한 결과를 돌려주는 기능을 한다.

WEB, 웹서버, 아파치 기본

2019-10-03

인터넷 브라우저와 서버 내 노트북 web browser( client )에서 google.com( domain )을 입력하고 엔터를 친다. ip 주소로 구글 웹서버에 접속(request)하게된다. web server 에서는 저장소에서 client가 요청한 index...

WEB, DOM이란?

2019-10-02

Document Object Model 웹페이지를 자바스크립트로 제어하기 위한 객체 모델을 의미한다 JavaScript로 문서 객체를 생성하는것.

WEB, 기본적인 인터넷, 네트워크 그리고 서버

2019-10-01

인터넷 접속 과정 내 노트북 웹 브라우저( client )에서 google.com( domain )을 입력하고 엔터를 친다. DNS server가 도메인을 ip address로 변환하여 내 노트북으로 전달해준다. 그 ip 주소로 구글에 접속(request)하게된다...

Back to top ↑

ReactJS노마드코더

WEB, ReactJS, Async&Await

2019-11-27

Async, Await .then() 을 계속 쓰게 되는 것은 보기 불편하다. 이것을 해결하기 위해 사용한다

WEB, ReactJS, AJAX on React

2019-11-27

AJAX Asynchronous(비동기화) JavaScript and XML 뭔가를 불러올때마다 페이지 새로고침을 하지 않아도 된다 JSON : JavaScript Object Notation / 오브젝트를 자바스크립트로 작성하는 기법

WEB, ReactJS, Component State

2019-11-26

State 리액트 컴포넌트 안에 있는 오브젝트 state가 바뀔 때 마다, 컴포넌트는 새로운 state와 함께 다시 render한다 setState : state를 직접 수정하지 않는다. setState를 이용해서 수정한다. ex. hello를 출력하고, 2초후에...

WEB, ReactJS, Lists with .maps & set PropTypes

2019-11-26

Array.prototype.map() map이라는 기능은 새로운 array를 만든다 ex. movies 배열을 가지고 맵핑을해서 새로운 배열을 만든다. movie는 현재 사이클의 엘리멘트를 의미한다. { movies.map( movie => { retur...

WEB, ReactJS, Data flow with Props

2019-11-26

Props 메인(부모) 컴포넌트가 모든 데이터를 가지고 있고 자식 컴포넌트에게 정보를 전달한다. 한개의 데이터 소스를 가지고 각 컴포넌트별로 출력만 하면 된다. 이를 이용해 강력한 UI를 구축 할 수 있다

WEB, ReactJS, introduction to react

2019-11-25

웹펙 웹팩을 이용해서 최근 자바스크립트 (리액트 코드)를 모든 브라우저가 이해할수 있게 변경해줘야한다.

WEB, ReactJS, introduction to react

2019-11-25

리엑트의 장점 1. no framework to learn 별도의 프레임워크를 배우지 않고 자바스크립트를 활용하면된다 angular, vue는 프레임워크를 배워야한다 2. Just JavaScript Composition 리엑트 구조는 요소별, 컴포넌트별로...

Back to top ↑

DB

DATABASE, 관계형 데이터베이스(relational database)

2019-12-26

관계형 데이터베이스란 table로 이루어져 있으며, 이 table은 key와 value의 관계를 나타낸다 이처럼 데이터의 종속성을 관계로 표현하는 것이 데이터베이스의 특징이다 관계형 데이터베이스의 table 구성

DATABASE, 데이터베이스(DataBase)

2019-12-26

데이터베이스란 database는 통합하여 관리되는 데이터의 집합체 DBMS(Database Management System) 데이터베이스를 관리하는 미들웨어를 데이터베이스 관리 시스템이라고 한다

DATABASE, table 생성/삭제

2019-12-04

Table 생성 CREATE TABLE `member` ( seq int not null auto_increment, grade varchar(5) NOT NULL, name VARCHAR(20) NOT NULL, phone varchar(20), primary key (...

Back to top ↑

Server

Server, Microservice Architecture

2020-06-05

Monolith Architecture s/w의 모든 구성요소가 한 프로젝트에 통합 소규모 프로젝트일때 많이 사용된다

Server, ZooKeeper

2020-06-03

코디네이션 시스템 분산 시스템 설계의 문제점을 해결하는 서비스 시스템 1.분산된 시스템간 정보를 어떻게 공유할것이고 2.클러스터에 있는 server들의 상태를 확인할 필요가 있고 3.분산된 server간 동기화를 위한 lock을 처리하...

Server, Kafka

2020-06-03

기존 메시징 시스템 vs Kafka |기존|Kafka| |–|–| |producer 메시지 전송시, 메시지 개별전송 | 다수의 메시지를 batch형태로 한번에 전달 (tcp/ip라운드트립 횟수 줄임)| |메시지 메모리에 저장처리 안된 메시지가 많을 수록 성능 감소 | 파일시스템에 ...

Back to top ↑

DataStructure

Data Structure, heap

2019-11-21

들어가기 전 스택(stack) : 먼저들어온게 나중에 나간다 큐 (queue) : 먼저들어온게 먼저 나간다 우선순위 큐(priority queue) : 가장 우선순위가 높은게 먼저 나간다 우선순위 큐는 배열, 연결리스트, 힙으로 구현 가능하다.

Data Structure, Graph

2019-11-12

그래프의 개념 단순히 노드(N, node)와 그 노드를 연결하는 간선(E, edge)을 하나로 모아 놓은 자료 구조 즉, 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료 구조이다. ex. 지도, 지하철 노선도의 최단경로, 전기 회로의 소자들, 선수 과...

Data Structure, JAVA, array/arraylist/linkedlist

2019-10-09

Array / ArrayList / LinkedList 1. Array vs ArrayList 배열 (Array) 배열의 크기는 한번 정하면, 변경할 수 없다. int[] arr = new inte[3]; 배열 초기화시 메모리에 할당되어 ArrayList보다 속도가 빠...

Back to top ↑

NetWork

Back to top ↑

boostcourse

WEB, boostcourse, jsp 내장객체

2019-10-24

JSP 내장객체 내장객체 : JSP에서는 개발자가 선언하지 않아도, 사용할 수 있는 미리 선언된 변수가 존재

Back to top ↑

testcode

Spring, TDD & Unit test 개념

2019-12-16

TDD의 정의 Test Driven Development 테스트 주도 개발 : 테스트가 개발을 이끌어 나간다 TDD의 개념 테스트를 먼저 만들고 테스트를 통과하기 위한 코드를 작성하는 것.

Back to top ↑

Data

Data Structure, Graph, 프로그래머스 가장먼 노드(49189)

2020-04-03

그래프 구성요소 1. 정점(vertex / node) : 위치를 나타낸다. 2. 간선(edge / link / branch) : 위치간의 관계, 정점을 연결하는 선 3. 인접 정점 : 간선에 의해 직접 연결된 정점 4. G(V,E) : 그래프는 정점과 간선의 집합이므로 G(V,E)...

Back to top ↑

Structure

Data Structure, Graph, 프로그래머스 가장먼 노드(49189)

2020-04-03

그래프 구성요소 1. 정점(vertex / node) : 위치를 나타낸다. 2. 간선(edge / link / branch) : 위치간의 관계, 정점을 연결하는 선 3. 인접 정점 : 간선에 의해 직접 연결된 정점 4. G(V,E) : 그래프는 정점과 간선의 집합이므로 G(V,E)...

Back to top ↑

Study

Study, Object, chapter2&3 presentation

2021-04-20

chapter03. 역할, 책임, 협력 객체지향 설계란, 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.

Back to top ↑

Redis

Redis Stream

2021-04-28

Stream Stream은 로그 데이터를 처리하게위해 5.0에서 새로 도입된 데이터 타입입니다. 대량의 데이터가 연속적으로 발생할때 처리하기 위해 등장했습니다. 기존 데이터를 수정하지 않고 오직 추가로 발생합니다. 이런 종류의 데이터를 stream or log데이터...

Back to top ↑