![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcL7WQz%2FbtsJtcatCGv%2FIb81axtIt8ZzOZeZkjZJR0%2Fimg.png)
백준 문제집의 "대기업 코테에서 나오는 유형 모음"을 풀고 있는데 최근에 검색 관련 API를 만들면서 검색단어의 빈도수를 구해야 하는 경우가 있었다. 해당 문제를 보고 그때가 생각이 났고, 어렵지 않게 풀 수 있었다. 백준 1157번 단어 공부 문제 풀이문제가 단순명료하여 바로 문제 풀이를 진행하려고 한다. 1. 대소문자로 이루어진 단어를 입력받는다. 2. 대소문자를 구분하지 않고 가장 많이 사용된 알파벳을 찾는 것임으로 모든 알파벳을 "대문자"로 치환한다 (출력이 대문자라서) 3. 사용빈도가 제일 높은 알파벳이 중복해서 존재하면 "?"을 리턴하고 아니면 사용빈도가 제일 높은 알파벳 대문자를 출력한다. import java.io.BufferedReader;import java.io.IOExcept..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN2FE5%2FbtsJnF65tjr%2FADYQ0ja39cmrSZDiIpMFz1%2Fimg.png)
백준 문제들을 구경하다가 "대기업 코테에서 나오는 유형 모음"이라고 인기 있는 문제집이 있어서 취미 삼아 난이도가 낮은 것부터 순서대로 풀어볼 생각이 들었다. 백준 23971번 ZOAC 4 문제분석난이도가 낮아서 그런지 정말 쉬운 문제였다. 문제설명은 W,H순으로 말하다가 입력받을 때는 H, W순으로 받는다거나 굳이 이해하기 쉽게 설명할 수 있는데 억지로 꼬아서 말하려고 하는 것 같아 억지로 만든 문제구나 싶었다. 내가 이해하기 쉽게 정리한 내용은 아래와 같다.1. H행 W열로 이루어진 테이블이 존재한다.2. 테이블에는 각 참가자들간 세로로(행) N칸, 가로로(열) M칸 이상 떨어져 앉아야 한다.3. 최대 앉을 수 있는 참가자는 몇명인가. 문제 풀이문제를 보고 푸는 데까지 1분 이채 걸리지 않았다. ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxSWjk%2FbtsJgvvRPRL%2FAtkkh6yGkdHnZvxk9Xbkh0%2Fimg.png)
해당 문제를 다 풀고 나서 알아보니 배낭(Knapsack) 문제라고 유명한 문제였다. 대표적인 DP(Dynamic Programming) 알고리즘 문제 라고한다. 진짜 맨땅에 헤딩하듯이 문제를 풀다 보니 시행착오가 많이 있었다. 또한 가볍게 시작한 알고리즘 문제 풀기가 개발 사고를 넓혀주고 실무에도 도움이 될 것 같다고 생각을 하게 된 계기가 되었다. 푸는 과정이 재밌어서 게임은 줄이고 심심할 때 놀이 삼아 계속해서 문제를 풀어봐야겠다.아래에 문제를 보여주고, 해당 문제 해석, 동작은 하지만 시간초과로 실패한 로직, DP알고리즘을 고려하여 작성한 로직으로 설명하겠다. 백준 12865번 평범한 배낭 문제문제이 문제는 아주 평범한 배낭에 관한 문제이다.한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdjXlT%2FbtsJqk7BPlk%2F7bqZyRRfOlCTvSshwJtvYK%2Fimg.png)
이 문제는 삼성 SW 역량 테스트의 기출문제라고 한다. 알고리즘 문제를 자주 풀어보면 업무에도 도움이 될 것 같아 정기적으로 연습해보려고 한다. 물론 알고리즘 문제를 잘 푸는것이 실제 업무 능력과 직접 연결되지 않을 수 있다는 것도 알고 있다. 그러나 개발사고를 키우는 데에는 도움이 되지 않을까 싶다. 그리고 스펙처럼 꾸준히 쌓으면 좋을 것 같아 생각정리할 때 틈틈이 풀어볼까 한다. 백준 3190번 뱀 문제문제'Dummy'라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다.게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FruHqy%2FbtsI2jhZNjY%2FCaOBZExagvsNDoqrUiBF71%2Fimg.png)
업무를 진행하면서 물류 관련 용어를 자주 사용하는데 가끔 해당 용어에 대해서 바로바로 떠오르지 않을 때가 있다. 그때마다 검색해서 다시 찾아보곤 하는데 블로그에 간단하게 용어 정리를 하고자 하여 작성하게 되었다. 해당 글을 통해 자주 사용하는 단어와 대략적으로 뜻을 알아가길 바란다. 계속해서 기회될 때마다 수정하면서 추가할 계획이다.WMS (Warehouse Management System)정의: 창고 관리 시스템 WMS(Warehouse Management System, WMS)는 창고 내의 재고, 입출고, 작업 프로세스 등을 효율적으로 관리하고, 실시간 재고 파악을 지원하는 종합적인 물류 관리 시스템을 말한다. ERP(Enterprise Resource Planning) 시스템 내에 WMS 기능이 통..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1uYgf%2FbtsIWukt9px%2FNzbYemjy3cGS5uThlpvq40%2Fimg.png)
실무에서 Redis관련된 업무를 다수 진행하면서 상세하게는 아니어도 간단하게나마 정리해 보고자 글을 작성하게 되었다. 전반적인 Redis의 특징을 정리한 글이다. 개요우선 Redis(Remote Dictionary Server)는 Key-value구조로 데이터를 저장하고 있는 NoSQL DBMS이다.또한 기존 관계형 데이터 베이스(RDBMS)와 같이 하드디스크에 데이터를 저장하는 것이 아닌 메모리(램)기반 DBMS로 in-memory DB이다. 해당 말만 듣고 이해하기 어려울 것 같아 아래에 더 자세히 설명하였다. NoSQL DB의 특징으로 RDB와는 다르게 스키마가 없거나 느슨하게 정의되어 있어 데이터 구조가 유연하고 변경이 가능하고, String, List, Set, Hash, Sorted Set, ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnwhud%2FbtsjnHU0Arr%2FX20cU8vEWk7ie8LKLYgm2K%2Fimg.png)
해당글은 ORACLE기준으로 작성되어 있다. 단순히 오름차순 내림차순 정렬로 간단한 ORDER BY만 사용하다가 다양하게 사용할 수 있다는 것을 알고 간단하게 정리해볼까 한다. ORDER BY절 설명 ORDER BY 절은 데이터를 원하는 순서로 정렬할 때 사용된다. 정렬할 컬럼을 지정하며, 오름차순(ASC) 또는 내림차순(DESC)을 사용하여 정렬 순서를 지정할 수 있으며, DECODE나 CASE WHEN 같은 함수를 함께 사용할 수 있다. 오름차순 정렬 (ASC) - 작은 값에서 큰 값으로 정렬 오름차순은 ORDER BY의 기본값이므로 컬럼명 뒤에 ASC를 생략해도 된다. SELECT USER_ID , USER_NAME , USER_LEVEL FROM USER ORDER BY USER_LEVEL ASC..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9P2J1%2FbtscxmwVoWl%2FbfNCHWA0c22cbWWxqxbpPk%2Fimg.jpg)
큰 프로젝트를 실행할 때 버벅 거리거나 중간에 튕김 현상을 겪어봤을 것이다. 그럴 때 메모리를 늘려 해당 현상을 해결하는 법을 작성하려고 한다. 매우 간단하니 위와 같은 어려움을 겪고 있다면 이 게시물을 통해 해결하기 바란다. Heap Size 확인하는 법 먼저 heap size를 확인 하는 법을 알아보자 위 그림처럼 Window > Preferences > General > Show heap status을 체크한다. 이클립스 하단에서 현재 사용하고있는 Heap Size를 확일할 수 있다. 이클립스 아이콘 오른쪽 마우스 클릭 > 파일 위치 열기(I) 클릭 이클립스 폴더에서 eclipse.ini 파일을 아래와 같이 편집하면 된다. Xms256m은 Heap 영역의 시작 크기를 나타내며, Xmx2048m은 H..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fexa512%2FbtscoE6AjkM%2FTP7oLuSCpHmk4yzuPnzPG1%2Fimg.jpg)
살짝만 검색해 봐도 많은 분들이 이클립스 단축키들을 잘 정리해 놓았지만... 너무 양도 많고 내가 개인적으로 자주 사용하는 단축키들만 보고 싶어서 내가 보려고 이클립스 단축키를 정리하려고 한다. 우선 eclipse의 단축키들은 기본적으로 아래 그림과 같이 Window > Preferences > General > Keys 에서 확인할 수 있다. 자주 사용하는 단축키 목록 1. Ctrl + Shift + F : 소스코드 자동 정렬 - Source beautify (들여 쓰기 등등) 2. Ctrl + K : 선택한 단어 다음 찾기 - 위에서 아래로 찾는다. (가장 자주 사용하는 단축키 ) 3. Ctrl + Shift + K : 선택한 단어 이전찾기 - 아래에서 위로 찾는다. (가장 자주 사용하는 단축키) 4..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPhafO%2Fbtr9zvjugfO%2FKwnM6dyakRWuopSkenedx1%2Fimg.png)
앞선 게시물인 cd명령어를 사용할 때 자주 사용하는 ls, ll, pwd 명령어를 한 번에 정리해보려고 한다. 자료도 찾아보고 정리하는데 간단하게 생각했던 것들이 생각보다 복잡해서 놀랐다. 주로 사용하고 개인적으로 자주 쓰는 것만 추려서 정리하려고 하니 자세한 내용은 아래 링크에서 확인해 보는 것도 좋을 것 같다. 개인적으로 정리하면서 가장 충격이었던 것은 ll명령어는 단독명령어가 아닌 ls -l의 alias였다는 것이다.ls 명령어ls명령어는 list의 줄임말로 현재 위치나 특정 경로의 디렉토리 내용의 리스트를 출력하는 명령어로 cd와 마찬가지로 정말많이 사용하는 기본명령어다.ls 명령어 사용법ls [옵션] [파일명 또는 디렉토리명]ls app_log_20230405.log위와 같이 사용할 수 있다. ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo8uvB%2Fbtr719Cknzp%2FUQXkaTNOqJM4mHK7AwghB0%2Fimg.png)
이번에 작성할 것은 폴더 디렉토리를 이동하는 명령어인 cd명령어다. 다를 보통 리눅스 명령어를 접하면서 가장 먼저 접하게 되는 명령어 일 것이다. 너무 기본이라고 생각해서 그냥 넘어갔었으나, 간단하게나마 정확히 정리하고자 한다. cd 명령어 cd 명령어는 change directory의 줄임말로 현재 위치한 작업위치에서 다른 위치 즉 다른 디렉토리로 이동하는 명령어다. cd 명령어 사용법 cd [디렉토리 절대경로] cd /home/Hero/app/logs -> 절대경로 사용 cd [디렉토리 상대경로] cd ./app/log -> 현재 위치가 /home/Hero일 때 cd ..: 상위 디렉토리로 이동 cd . : 현재 위치한 디렉토리로 이동 cd - : 이전에 위치했던 디렉토리로 이동 cd / : ROOT..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjKUmP%2Fbtr7C1FkkAC%2FQ0zvPtPtVQFC0ksZTJoBu1%2Fimg.png)
앞서 로그 분석을 할 때 사용한 tail와 함께 자주 사용하고, 파일 내용 중 특정 문자열을 찾을 때 주로 사용하는 grep명령어에 대해서 간단하게 정리하려고 한다. 보통 grep으로 error 로그 추출이나 grep 여러개 검색, grep으로 파일생성등을 하기 위해 사용하게 된다. grep 명령어 grep명령어는 파일내의 특정 문자열을 찾을 때 사용하는 명령어다. 단순히 문자만 찾는 명령어가 옵션에 따라 문자열을 포함하거나 비포함, 라인수 등 여러 가지 방법으로 조회할 수 있다. 사용하기 쉽고 자주 사용하기 때문에 기억해 놓으면 좋겠다. grep 명령어 사용법 grep [옵션] "문자열" [파일명] grep -i "ERROR" 2023-04-03.log 위와 같이 사용 할 수 있다. grep 명령어 옵..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboFs1q%2Fbtr7CUdU7c4%2F4KktFMcVKOaf2v2jxoFjtK%2Fimg.png)
업무를 하다 보면 서버 로그를 보거나 분석할 때 리눅스 명령어를 사용해야 하는 경우가 많다. 당연하다고 생각하고 계속 사용하였었는데 까먹거나 헷갈릴 때 계속 찾아서 그냥 정리해 놓을까 해서 글을 작성하게 됐다. tail 명령어 tail 명령어는 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력해주는 명령어다. 기본값으로는 마지막 10줄을 출력하며, 주로 tail은 리눅스에서 오류나 파일 로그를 실시간으로 확인할 때 사용한다. tail 명령어 사용법 tail [옵션][파일명] tail app_2023_04_03.log 위와 같이 사용 할 수 있다. tail 명령어 옵션 1. -f : tail을 종료하지 않고 파일의 업데이트 내용을 실시간으로 계속 출력한다. 2. -n : 파일의 마지막줄부..