본문 바로가기

전체 글

(67)
[프로그래머스 LV.3] 베스트앨범 오래간만에 코딩테스트 문제를 한번 풀어보았다. 알고리즘 문제인데 해시는 그나마 풀만할 것 같아서 도전해보았는데,,, 역시 쥐약이다 하여튼 풀어냈는데 코드가 너무 더러운 것 같다,, 날 잡고 더욱 쉽고 깔끔하게 풀어낼 수 있도록 노력 해봐야겠다. 문제 딱봐도 dictionary 문제인 것 같다. 각 장르의 총합, 각 index 별 재생 횟수를 dictionary로 구분하여 저장해서 풀어야겠다 라는 생각부터 했다. 입출력 예 풀이 일단 각 장르의 총합, 장르의 idx와 재생 횟수를 추가하는 dictionary를 만들었다. 각 장르와 idx를 구분할 수 있도록 "/"를 넣어 'genre/idx' 를 key값으로, 재생횟수를 value로 넣었다. 이 부분을 따로 만들어버리지 않고 각 장르의 총합, 각 idx와 ..
[프로그래머스 LV.1] 개인정보 수집 유효기간 오래간만에 프로그래머스 알고리즘 문제를 풀어봤다. 맨날 JAVA만 사용해서 개발하다 알고리즘만은 Python을 놓치기 힘들어 Python으로 풀어봤는데 세미콜론과 괄호가 자동으로 들어가는건 기분탓인가? 그래도 아직은 머리가 돌아가나 보다... 생각외로 빠르게 풀어냈다.(나름의 구글링을 사용했지만 말이다.) 풀이를 시작해보자. 문제 문제가 꽤나 길다.. 그래도 이해하기는 충분히 쉬운 문제인 것 같다는 생각이였다. 입출력 예 풀이 나는 날짜라는 개념을 보자마자 Python의 Datetime을 가장 먼저 생각하게 되었다. 하지만, 변수가 하나 존재했다. 너무 큰 변수이다 보니 일부러 사진은 크게 해두겠다. 왜 변수이냐면, Datetime을 사용하면 매 달의 마지막 달은 실제 달의 마지막 날과 같게 출력될 것이..
SSO란 무엇일까? 오늘은 SSO에 대해서 찾아보고 공부해봤다. 어느 블로그가 정말 기가막히게 잘 나와 있어서 너무 감사하게도 보고 참고하게 되었다. 참조한 블로그는 아래 URL로 남겨두겠다. https://gruuuuu.github.io/security/ssofriends/ 아주 기가막힌 정리 글에 더욱 쉽고 빠르게 이해할 수 있었다. 그 블로그를 보며 내가 다시한번 정리하는 느낌으로 블로그를 작성해보고자 한다. SSO란? SSO는 Single Sign-On의 약자로써 "통합 인증"을 의미한다. 한번의 로그인을 통해 여러개의 사이트에 접속이 가능한데, 결국 한 페이지에서 로그인 하면 다른 페이지에 로그인 없이 사용자 정보를 가질 수 있도록 하는 것이다. 한 곳에 인증이 완료되면 그 인증정보를 담아 다른 페이지로 이동시켜 ..
Batch이란 무엇일까? Batch란? Batch는 한글로 집단, (일괄 처리를 위해) 함께 묶다 등 "일괄" 이란 단어를 공통적으로 사용한다. IT용어로는 "클라이언트와 상호작용 없이 일련의 작업을 단위별로 묶어 정기적으로 반복수행 하는 것" "정해진 규칙에 따라 일괄처리 하는 것" 이라고 한다. 즉, "한번에 처리하기 위해 개별적인 여러 가지 것들을 한번에 묶어 '처리'하겠다" 라는 말이다. 그려면 Batch(일괄처리)에 대해서 알아보자. Batch 특징 대량 데이터 처리 Batch는 그래도 정말 많은 정보를 일괄적으로 처리할 수 있지 않을까 싶다. 예를들어 금융권은 아주 많은 데이터의 처리가 주기에 맞게 자동적으로 처리되야 할텐데 대용량 처리가 안된다면 사람이 죽어나갈 것 같다.. 아마도 그런 입장에 놓인 사람들이 만들었지..
[JavaScript] Script의 적용 방식과 Object Model Script 사용 방식 inline 방식 태그에 직접 스크립트 기술 onclick 내 script 문법을 사용하면 실행 가능 정보(HTML) + 제어(script) 형태로 유지보수가 굉장히 힘듦 / 처리문제 발생 script Tag 방식 : onclick 내용을 addEventListener(click, function()) 형태로 변경 inline 방식의 이벤트 부분을 외부 코드로 작성 하나의 element를 지정하여 출력 정보와 제어를 분할하여 유지보수 편리 script 파일 분리 방식 외부 파일을 불러와 실행 src 속성에 파일의 링크 및 위치를 삽입하여 load 파일을 서로 분리하여 유지보수의 편의성 증가 및 중복 제거 캐시를 통해 저장해 파일을 보관한다 script 파일을 불러올 수 있음 Obj..
[JAVA] JAR과 WAR JAR과 WAR Java의 툴을 이용해 생성된 압축 파일 Application을 쉽게 배포하고 동작시킬 수 있도록 관련 파일을 패키징하는 역할 JAR? Java ARchive Class or Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일 포함 Java Application이 동작할 수 있도록 하는 Java Project Archive File 원하는 구조로 구성 가능 JRE만 가지고도 실행 가능 WAR? Servlet / JSP Container에 배치할 수 있는 Web Application 압축 파일 JSP, Servlet, JAR, Class, XML, HTML, JavaScript 등 웹 관련 자원으로만 구성 Web Application을 쉽게 배포 가능 WAR 파일을 실행하기 위해 W..
[Docker]도커에 대해서 + 도커관련 명령어 도커(Docker)란 Container 기반의 오픈소스 가상화 플랫폼이다. Container를 관리하는 플랫폼으로 다양한 프로그램, 실행 환경을 Container로 추상화 하고, 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. 이는 가상머신과 비슷하며 하나의 프로그램에서 나오는 컨테이너는 각각 하나의 운영체제라 생각하면 된다. Image? 컨테이너의 실행에 필요한 파일과 설정값 등을 포함하고 있는 것. 컨테이너는 이미지를 실행하여 나온 프로세스라고 생각해 본다면 이미지는 프로그램 이라고 생각할 수 있다. Container? 운영체제를 기반으로 한 소프트웨어는 실행을 위해 OS와 소프트웨어가 사용하는 동적 Library에 대해 의존성을 갖는다. 즉, 소프트웨어가 실행되기 위해 OS..
[MySQL]트랜잭션 트랜잭션? 데이터베이스의 상태 변화를 수행하는 작업의 단위를 뜻한다. 상태 변화란 SQL문이 실행되어 데이터베이스에 접근하는 것을 의미하는데, 예를 들어 게시물 업데이트 후 새로고침이 필요할 때 UPDATE 실행 후 SELECT가 실행되는데, UPDATE와 SELECT를 합친 것이 하나의 트랜잭션이라 볼 수 있다. 트랜잭션의 4가지 특성(ACID) 1. 원자성(Atomicity) 더 이상 쪼갤 수 없는 작업 단위로써, 정상적으로 함께 수행되거나 전혀 수행되지 않음을 보장해야 한다. "All or Nothing"으로 많이 표현된다. 2. 일관성(Consistency) 트랜잭션의 수행은 DB의 일관성을 보존해야 하는데, 트랜잭션이 성공한 경우 기존 PK/FK 같은 무결성 제약 조건이나 데이터 간 정합성이 일..