전체 글 (46) 썸네일형 리스트형 [자료구조] Priority Queue / 우선순위 큐 Priority Queue 우선순위 큐 #자료구조 설명 : Priority Queue는 말 그대로 우선순위 큐로써, 일반적인 선입선출과는 다른 개념이다. 우선순위 큐는 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조이다. 우선순위 큐는 데이터를 우선순위에 따라, 처리하고 싶을 때 사용하는 자료구조 예시) 물건 데이터를 자료구조에 넣었다가, 가치가 높은 물건부터 꺼내서 확인해야 하는 경우 자료구조 추출되는 데이터 스택 가장 나중에 삽입된 데이터 큐 가장 먼저 삽입된 데이터 우선순위 큐 가장 우선순위가 높은 데이터 그런데 그 우선순위를 어떻게 정함?...누구 맘대로... 구현 방법 : 첫번째 방법. 단순하게 리스트를 이용하여 구현 가능 두번째 방법. 힙을 이용하여 구현 가능 - 데이터 개수가 N개.. [프로그래머스] 혼자 놀기의 달인 코딩테스트 문제 설명 혼자서도 잘 노는 범희는 어느 날 방구석에 있는 숫자 카드 더미를 보더니 혼자 할 수 있는 재미있는 게임을 생각해냈습니다. 숫자 카드 더미에는 카드가 총 100장 있으며, 각 카드에는 1부터 100까지 숫자가 하나씩 적혀있습니다. 2 이상 100 이하의 자연수를 하나 정해 그 수보다 작거나 같은 숫자 카드들을 준비하고, 준비한 카드의 수만큼 작은 상자를 준비하면 게임을 시작할 수 있으며 게임 방법은 다음과 같습니다. 준비된 상자에 카드를 한 장씩 넣고, 상자를 무작위로 섞어 일렬로 나열합니다. 상자가 일렬로 나열되면 상자가 나열된 순서에 따라 1번부터 순차적으로 증가하는 번호를 붙입니다. 그 다음 임의의 상자를 하나 선택하여 선택한 상자 안의 숫자 카드를 확인합니다. 다음으로 확인한 카드에 적.. 02. [Mybatis에서 JPA로] 내가 Mybatis를 쓴 이유 내가 개발한 프로젝트마다 Mybatis가 쓰였던 이유? 내가 개발한 프로젝트는 교육기관에서 팀원들과 함께 개발한 웹 어플리케이션, 전자정부프레임워크를 활용한 공공 SI 프로젝트정도였다. 공통점이 한 가지 있는데, 세 개의 프로젝트 다 Mybatis를 사용했다는 것이다. Mybatis를 왜 주로 썼던걸까? 사실 생각해보면 그냥 "마이바티스 쓰자~" , "세팅은 마이바티스로 하신다는데요?" 해서 썼던 기억이 난다. 다시 돌아보니 개발하는 데에 있어서 하나하나 왜 이걸 쓰게됐고, 이걸 사용함에 따라 어떠한 제약이 있었고, 그로 인해서 어떠한 것을 깨달았는지가 매우 중요하다는 걸 알게 되었다. 그리고 다년간 우리나라에서 Mybatis가 수요되어 온 어떠한 구체적인 사유도 있을 것 같아서 그 이유를 알아보고 싶어.. 01. [Mybatis에서 JPA로] 마이그레이션을 맘먹은 계기 1. 파이널 프로젝트 마이그레이션하기로 맘먹다. Mybatis로 만들어진 프로젝트를 JPA로 마이그레이션하는 과정 1. 계기 Spring DATA JPA에 대해서 배우고, 이를 활용해 프로젝트를 만들면서 이해하곤 했지만 실제로 내가 원하는 서비스를 JPA로 개발해본 경험은 아직까지는 없다. 내가 다녔던 구)회사 에서는 Mybatis만 취급해서, JPA와 더 멀어졌었다. 하지만 개인적으로 개발에 대해서 공부를 하다보니, 내 최종 목표인 내 아이디어를 구상하고 개발로서 구체화하여 서비스를 론칭하는 데에 있어서는 JPA가 압도적으로 많이 쓰인다는 걸 알게 됐다. 또한, JPA가 Mybatis보다 클린 코딩에 가깝기 때문에 (내부는 복잡할지언정, 이거는 내가 더 열심히 공부하면 된다.) 리팩토링하기에도 적합하다.. [에러 해결] ORA-28001: the password has expired (Oracle DB 비밀번호 만료 해결법) 발단 : 비밀번호 갱신을 미루고 미루다보니 하다하다 이제 이런 에러까지 만나게 됐다. ORA-28001: the password has expired 말 그대로 비밀번호가 만료되어서, DB 연동이 안된다는 의미이다. ㅠㅠ 해결 과정(그런데 이제 난관이 하나 더 추가됨) : cmd에서 sqlplus 아이디/pw 이렇게 sqlplus가 연결되지 않았다고 나온다. 'sqlplus'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 왜 그러지? 하고 당황했는데 원인을 알았다. 원인 : 환경변수 설정이 안되어 있던 것이었다...! 해결법 : 첫째 : bin 폴더 경로를 복사한다. 나같은 경우는 bin 경로가 좀 달라서 찾느라 조금 고생했다 C:\oraclexe\app\oracl.. [짤막 지식] syso 그 너머의 log찍기(logger 세팅 방법) 개발에 있어서 에러는 필연적인 숙명이라고 생각한다. 개발을 하면서 에러가 안날 거 같다고 자신에 차서 코딩을 한다기 보다는, 에러가 나더라도 어디서 에러가 났는지 찾을 수 있게끔 코딩을 하자! 에 더 무게를 두고서 코딩을 하는 편이다. 한번에 완벽해지리라는 없으니, 에러를 확인하기 좋고, 더 나은 코드로 디벨롭하기 좋은 모양새로 코딩을 짜는 게 더 낫다고 생각한지 오래다. (난 에러없이 똑똭똭똭똭 개발할래~ 이런 꿈보다는 에러가 나타나도 잘 해결할랜다! 하는 개발자가 되는 것이 내 목표!) 그래서 값들을 추적하고, 어느 layer에서 오류가 난건지 쉽게 알 수 있도록 logger 기능을 세팅하고 HTTP요청 메세지를 편리하게 콘솔창에 볼 수 있도록 log찍기로 세팅해보도록 하겠다. logger 세팅하는 .. 05. HTTPServletRequest What is : HTTPServletRequest HTTPServletRequest: 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. 즉, 우리로선 굉장히 편리한 기능이라는 것!! HttpServletRequest만 있으면, 아래와 같은 HTTP요청메세지를 편리하게 조회할 수 있다! POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=kim&age=2 HttpServletRequest가 가진 몇 가지 부가기능들 1.임시 저장소 기능 - 해.. 04. 서블릿 활용 - 요청 & 응답(request, response) 요청메세지part. request.getParameter 활용법 (HTTP요청메세지에 추가로 적은 username 출력해보기) http://localhost:8080/hello?username=Lee : HTTP 요청 메시지 username=Lee : query parameter 주소창에 이렇게만 쓰고 다시 RUN하면 당연히 아무것도 작동하지 않는다 당욘함 코드를 더 추가로 적어주지 않았음 인텔리제이에 queryParameter을 조회하는 getParameter 메소드를 사용하여 "username"을 빼내와서 콘솔에서 출력해보도록 하겠다. String username = request.getParameter("username"); System.out.Println("username = " + userna.. 이전 1 2 3 4 5 6 다음