[✕] Analysis Experience 도시계획 및 지리학 전공에서 주로 양적 연구 방법을 공부했습니다. 다층위의 데이터 분석을 위해 통계학과 지리정보시스템(GIS)을 공부하면서 데이터와 프로그래밍에 대한 감각을 익힐 수 있었습니다. 13.3-20.3
[✕] Backend Experience 백엔드 개발자로 일하면서 주로 도메인 데이터 설계와 API 개발을 맡았습니다. Spring 프레임워크를 배웠으나 현업에서는 NestJS를 익혀 활용했습니다. 21.10-23.1
A. Tokki Soju | 사이트 깃헙 HTML과 CSS를 배운 후 처음 개발해 본 가상의 랜딩 페이지입니다. 실제 브랜드를 대상으로 색상 등 디자인 원칙을 적용해 보았습니다. 23.3-23.3
C. Minecraft Adventure Park | 사이트 깃헙 가상의 테마파크를 주제로 한 랜딩 페이지입니다. 처음으로 피그마를 활용해 보았습니다. 23.5-23.7
D. Archon v1 | 사이트 깃헙 가상의 웹진 사이트 설계하고 구현한 프로젝트입니다. 기획부터 디자인, 대략적인 데이터 설계까지 전체 사이클을 경험해 보았습니다. 23.7-23.9
E. Music Rater | 사이트 깃헙 유튜브 음악 검색, 저장, 평가가 가능한 사이트입니다. Python으로 유튜브 음악 검색 라이브러리를 감싸 API를 연동시켰습니다. 23.10-23.11
F. Simple Drawing | 사이트 깃헙 간단한 그림 그리기 사이트 입니다. 23.11-24.1
G. Archon Admin | 사이트 깃헙 가상 웹진(Archon)의 어드민 사이트입니다. 백엔드 API도 함께 개발, 오라클 클라우드와 개인 도메인을 연결했습니다. 23.11-24.2
H. Rhyme Generator | 사이트 깃헙 알고리즘 과제 중 개발한 영어 라임 생성 프로그램 입니다. 콘솔에서 Node를 통해 작동합니다. 24.1-24.1
I. Music Visualizer | 사이트 깃헙 간단한 오디오 시각화 프로젝트 입니다. 푸리에 변환과 펄린 노이즈를 활용했습니다. 24.1-24.3
J. Archon v2 | 사이트 깃헙 기존 JavaScript로 작성된 사이트를 Next.js로 이전하고, 백엔드 API와 연동한 풀스택 프로젝트 입니다. 24.3-24.6
K. The Catalogue | 사이트 깃헙 포트폴리오 전시를 위해 개발한 웹사이트입니다. 관리 편의성을 위해 Notion을 백엔드로 사용했으며, Github README 마크다운 파일을 연동해 상세 페이지로 출력했습니다. 24.5-24.6
2024년 1월
데이터 구조 및 알고리즘 과제를 위해 작성된 개인 프로젝트로, 발음을 기반으로 라임을 생성하는 프로그램입니다.
이 알고리즘은 단어의 음성적 라임을 위한 파싱과 검색, 두 단계로 나눌 수 있습니다.
Stack) 클래스 준비
util.promisify를 사용하여 파일을 비동기적으로 읽습니다.phonemesDictArray: 헤드워드와 해당 음소 스택의 배열.vowelSymbolsArray: 모음 기호 배열.rhymeDictArray: 헤드워드, 라임 문자열 및 음소 수의 배열.splitTextlines, splitTabs, getUserInput, excludeElement와 같은 유틸리티 함수가 포함됩니다.makePhonemesDictionary, makeWordlist, makeSymbolsDictionary 등이 있습니다.identifyRhyme: 주어진 음소 스택의 라임 문자열을 결정합니다.getMatchedRhymeDicts: 라임 문자열과 음소 수를 기반으로 라임 사전을 필터링합니다.getMeaningfulWords: 일치하는 라임 사전을 기반으로 의미 있는 단어를 필터링합니다.getPhonemesDictionary, getWordlist, getSymbolsDictionary, getVowelSymbols, makeRhymeDictionary 등이 있습니다.prepareData, processUserInput, setSearchParams, loopSearch, getSearchedWords, getPhonemesOf, getMoreSearchedWords, printOutput, showResult, searchMoreOrEnd 등이 있습니다.prepareData를 호출하여 데이터 구조를 초기화합니다.processSearch를 호출하여 사용자 입력을 받고, 라임 단어를 검색하고, 결과를 표시합니다.Stack 클래스를 생성함으로써 구현됩니다. 스택은 음성 라임 문자열을 만들기 위해 사용됩니다. 스택은 LIFO(Last In, First Out)라는 특성을 가지고 있어 마지막 모음 음소를 찾을 때 유용할 수 있습니다. 이를 위해 push, pop 메서드를 사용합니다.undefined)
undefined는 값의 부재를 나타내는 데 사용됩니다. 이는 특정 데이터가 기대되지만, 존재하지 않을 수 있는 경우를 처리하는 데 사용됩니다. 예를 들어, 입력 단어의 음소 스택이 사전에서 발견되지 않으면 함수는 undefined를 반환할 수 있습니다.try-catch 블록 등을 통해 오류 처리 메커니즘을 구현함으로써 런타임 오류를 처리하고, 디버깅용 오류 메시지를 제공할 수 있습니다.function IDENTIFY-RHYME(S, n, A)
// S is a stack of the phonemes
// n is the length of S
// A is an array of all vowel phonemes
// Initialize
new Stack T // a temporary stack
tempSize 0 // a size(integer) of temporary stack
phone "" // a string
isPhoneVowel FALSE // a boolean
// Iterate over the phonemes stack to find the last chunk of phonemes
for i=n-1 downto 0 do
phone POP[S]
PUSH[S, T]
tempSize tempSize+1
for j=0 to n-1
if A[j]= phone then
isPhoneVowel TRUE
break
end if
end for
if isPhoneVowel=TRUE then
break
end if
end for
if isPhoneVowel=TRUE then
for k=tempSize-1 downto 0 do
checekdPhone"" // a string
checekdPhonePOP[T]
PUSH[checekdPhone]
if not EMPTY[T] then
phonephone+checkedPhone
end if
end for
return phone
end if
return phone
end function