전체 글

개발은 좋은데 뭘로 개발할까
개인 프로젝트/[2021] 코드악보 공유APP

1. 어플리케이션 구상과 간단한 기획

코로나로 집에 혼자 있는 경우가 많아지면서 전처럼 혼자 피아노를 연습하는 빈도수가 늘어났다. 나는 피아노로 반주할 때 보통 인터넷에서 코드악보를 보면서 치는 경우가 많다. 그런데 인터넷의 코드악보는 가독성이 좋지 않은 경우가 많았다. 코드 악보가 개인 블로그에 올라와있는 경우가 많다보니 악보마다 위치한 사이트가 달랐다. 그렇다고 악보를 구매하자니, 코드 진행만으로도 충분한데 굳이 악보를 사야하나 싶었다. 그래서 핸드폰으로 코드악보를 모아둔 앱을 찾아보았다. 기타 연주를 위한 코드악보나, 내가 원했던 정말 코드만을 모아둔 앱도 몇개 있었다. 그러나 그 악보는 모두 검색해서 개발자가 작성해둔 코드를 보는 것 밖에 못하는 경우가 대부분이었다. 외국 앱중에 하나 자유롭게 편집해서 공유하는 앱을 찾았으나 정말 빈..

인턴/Oracle

[Toad for Oracle] 오라클 관리도구 '토드' 사용법과 TNS 설정

인턴을 하면서 오라클과 관련되어 알게된 내용을 정리하기 위한 포스팅입니다. 데이터베이스를 관리하는 도구로 인턴했던 곳에서는 Toad를 사용했다. 토드를 처음 열면 다음과 같다. 상단의 아이콘 중 다음 아이콘을 보면 플러그 처럼 생긴 아이콘이 있다. 바로 DB에 연결하는 세션을 만들거나 끊는 아이콘이다. 좌측에 활성화 된 아이콘을 눌러보자. 이런 창이 뜨게 된다. **MMAL 데이터 베이스는 테스트용 데이터 베이스이고 ***P_DEV 데이터 베이스는 ***P 이라는 운영서버를 위한 개발서버이다. 이제 접속할 서버를 선택하고 User와 PW를 입력하게 되는데, 사실 처음에는 지금 왼쪽에 보는 것 같은 리스트가 없어서 처음부터 등록을 해주어야한다. 나는 지금 TNS를 사용하고 있어서 저렇게 TNS탭에서 선택해..

인턴/델파이

[프로젝트] 자동 메일 송신 프로세스 만들기(2) : 알람 전송 리스트 테이블 만들기

지난번에 만든 테이블 레이아웃은 알림 내용 리스트 DB, 알림 전송시간 DB, 알림 수신자 DB에 대한 DB였다. 이번에는 알림 전송 목록 DB를 짰다. 이 테이블에는 이제 정말 어떤 시간에 어떤 내용의 알림을 누구에게 보낼것인지에 대한 내용이 들어간다. 다만, '내용'의 구체적인 부분은 따로 담지않고, 그 내용을 가져올 리스트 ID를 FK로 하여 저장하도록 하였다. 테이블 레이아웃으로 에러 정보까지 담도록 하였다. 그리고 전송 HTML, 전송 쿼리는 일종의 디버깅용도로 쓰기위해 저장하는 것으로 하였다. (이 내용으로 전송하는 것이 아니다.) 에러가 발생했을 때, HTML에서 에러가 발생했는지, 쿼리에서 에러가 발생했는지 알기 위함이다. 또한 알람전송ID, 리스트 ID, 시간ID, 수신자 ID 모두 동일..

인턴/델파이

[델파이] 2. 델파이 소스파일의 구성

델파이 VCL 폼을 처음 만들면 기본적으로 다음처럼 되어있다. unit ~ interface uses ~ type ~ var ~ implementation end. unit 은 pas파일의 이름이다. 반드시 파일 이름과 같아야 한다. interface는 자바의 인터페이스와 유사하다. '선언부' 라고도 하는데 이 소스코드에서 사용할 함수와 객체를 모두 선언해둔다. 선언부에서 선언하지 않은 클래스와 객체는 사용할 수 없다. 델파이도 자바와 유사하게 클래스 구조로 되어있다. 메인이 따로 결정되어 있지 않고, 맨 처음 실행할 클래스는 직접 지정할 수 있다. 선언부 내에는 uses, type, var 이 들어간다. uses 파이썬, 자바의 import와 동일하다. 사용할 모듈을 가져온다. type 클래스를 선언하..

알고리즘 문제/BOJ (Python3, C++)

[백준][C++] 9935 문자열폭발

대표적인 스택 활용 문제이다. 두시간을 왜 틀렸는지도 모른채 끙끙 앓았다. 결국 대회 테스트 케이스까지 가져다가 일일히 대입해서 반례를 찾기는 했는데, 결과값이 워낙 길다보니 텍스트 비교 사이트를 활용해가며 고민한 결과 문제점을 결국 알아냈다.. 내가 떠올린 풀이법의 큰 틀은 다음과 같다. 1. 폭탄문자열의 각 문자와 그 문자의 인덱스를 맵으로 저장한다. 2. 주어진 문자열에서 한문자씩 반복하여 체크한다. 3-1. 그 문자가 폭탄문자열에 속해있지 않으면 정답 큐에 해당 문자를 넣는다. 3-2. 그 문자가 폭탄문자열에 속해있다면 그 문자의 인덱스를 가져온다. 4-1. 가져온 인덱스가 0이면 묻지도 따지지도 않고 count 스택에 넣는다. 4-2. 가져온 인덱스가 스택 상단의 인덱스보다 1크다면 스택 상단의..

알고리즘 문제/BOJ (Python3, C++)

[백준][C++] 19541 루머

BFS 연습문제로 풀게된 '루머' 문제이다. https://www.acmicpc.net/problem/19538 19538번: 루머 예제 1 0분 : 최초 유포자($1$, $6$번 사람)가 루머를 생성한다. 1분 : $1$번 사람은 $2$, $3$번 사람에게 루머를 퍼뜨린다. $2$번 사람은 주변인 $2$명 중 $1$명이 루머를 믿고 있어 루머를 믿게 된다. $3$ www.acmicpc.net 복잡한 문제지만, 보자마자 BFS를 떠올리는 것은 어렵지 않았다. BFS의 연습문제인 바이러스, 연구소 문제와 닮았다. 중간에 체크해야 하는 조건 하나가 추가되어서 귀찮은 것이 이 문제가 골드인 이유일 것이다. 내가 떠올린 아이디어는 러프하게 이 문제의 풀이과정을 그대로 따라가는 것이었다. 나는 파이썬에서 덱으로 ..

인턴/델파이

[프로젝트] 자동 메일 송신 프로세스 만들기(1)

인턴으로 들어와서 하게된 프로젝트 이번에 새로 신입으로 오신 다른 직원분과 둘이서 팀프로젝트로 하게 되었다. '자동 메일 송신 프로세스 만들기' 프로젝트에 대해 정리하고자 한다. 이 프로젝트의 순서도는 다음과 같다. 결국 이 프로젝트의 목적은 알림을 메일로 보내는 것이다. 중요한 것은 3가지이다. 1. 어떤 내용을 보낼 것인가 (알림 내용 리스트) 2. 언제 보낼 것인가 (알림 전송 시간) 3. 누구에게 보낼 것인가 (알림 수신자) 이 내용을 사용자가 입력하여 데이터베이스에 저장해둔다. 배치프로그램은 데이터베이스에 저장된 내용을 토대로 알림 전송 목록을 만든다 일종의 (내용, 시간, 수신자) 의 조합쌍을 만드는 것이다. 그리고 이 조합쌍들의 목록을 메일 전송 배치프로그램이 실제 메일을 전송하도록 만든다...

알고리즘 문제/BOJ (Python3, C++)

[백준][Python3] 20500 - Ezreal 여눈부터 가네 ㅈㅈ

https://www.acmicpc.net/problem/20500 20500번: Ezreal 여눈부터 가네 ㅈㅈ 문제의 답을 $1\,000\,000\,007$로 나눈 나머지를 출력한다. www.acmicpc.net 초급 알고리즘 DP 강의를 수강 후 연습문제로 풀게된 문제이다. 문제는 간단하다 1과 5로 이루어진 N자리 수 중 15의 배수를 구하는 문제이다. 어떻게하면 이 문제를 DP를 활용하여 구할 수 있을까? 아무런 아이디어가 떠오르지 않았다. 그래서 그냥 무작정 써봤다. 1자리수 1, 5 0개 2자리수 11, 15, 51, 55 1개 3자리수 111, 115, 151, 155, 511, 515, 551, 555 근데 3자리수를 쓰고보니 15의 배수가 한눈에 안보인다. 일일히 나눠보는 생각을 했지만..

알고리즘 문제/BOJ (Python3, C++)

[백준][Python3] 2878 - 캔디캔디

중급 알고리즘 - 그리디 수강 후 연습 문제로 풀게된 문제이다. https://www.acmicpc.net/problem/2878 2878번: 캔디캔디 첫째 줄에 M(1 ≤ M ≤ 2×109)와 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 친구들이 받고 싶어하는 사탕의 개수가 주어진다. 이 개수는 2×109보다 작으며, 친구들이 받고 싶어하는 www.acmicpc.net 친구들에게 사탕을 나눠줘야하는데 사탕은 반드시 모자라다. 내가 원하는 사탕이 10개인데, 사탕을 5개만 받았다면 그 친구는 못받은 사탕개수의 제곱만큼 분노하게 된다. (분노치 5*5 = 25) 각 친구들의 분노치 합을 최소로 만드는 문제이다. 이제부터 내가 이 문제를 풀기까지 사고한 과정을 정리하고자 한다..

알고리즘 문제/BOJ (Python3, C++)

[BOJ][Python3] 5520 - The Clocks

https://www.acmicpc.net/problem/5520 5520번: The Clocks Read nine numbers from the standard input. These numbers give the start positions of the dials. 0=12 o'clock, 1=3 o'clock, 2=6 o'clock, 3=9 o'clock. The example in figure 1 gives the following input data file: www.acmicpc.net 백준 5520 The Clocks 문제이다. Figure 1과 같이 3x3 배열로 시계들이 있다. 우리의 목표는 모든 시계를 12시 정각을 가리키도록 최소한의 횟수로 돌리는 것이다. 시계를 돌리는 방법은 Fig..

에버듀
Blog. 에버듀