안녕하세요 :-) 이번 포스팅에서 다루어볼 것은 선택정렬과 마찬가지로 시간복잡도 O(N^2)을 갖는 버블정렬 알고리즘입니다. 선택정렬 알고리즘의 경우 가장작은값을 찾아 기억할 변수 min값이 필요했었지만 버블정렬에서는 따로 필요하지 않습니다. 왜냐하면 버블정렬의 아이디어는 바로 원소 자신의 양옆의 인덱스와 비교하여 더 작은값을 앞으로 보내는 것이기 때문입니다. 선택정렬 알고리즘의 경우 조건 검사 범위를 앞에서 부터 제외했었습니다. 제외된 원소들은 이미 정렬이 완료되었다 간주했기 때문입니다. 하지만 버블정렬의 경우 뒤에있는 인덱스를 순서대로 제외하며 정렬을 수행합니다. 정렬 절차 1. 맨앞 인덱스의 원소 부터 자신과 오른쪽의 값을 비교하여 오른쪽이 더 크다면 자신과 위치를 바꿉니다. 2. 배열 전체를 조건..
안녕하세요 :-) 이번 포스팅은 선택정렬 알고리즘에 대해 다루어보겠습니다. 정렬 알고리즘은 여러가지가 존재 하지만 각각의 효율성과 구현 난이도에서 차이가 드러납니다. 선택정렬 알고리즘의 경우 O(n^2)의 시간복잡도를 갖는 처리 속도가 비교적 좋은 알고리즘은 아니지만 정렬의 매커니즘을 이해하기 편하고 그만큼 구현이 쉽기때문에 가장 먼저 다루어볼 알고리즘입니다. 정렬할 타겟배열 내에서 가장 작은 값을 선택하여 가장 앞으로 보내는 아이디어를 이용하는 알고리즘으로 디버깅 과정은 아래와 같습니다. 정렬 절차 1. 전체배열을 조건검사하여 가장 작은 값을 첫번째 인덱스와 스위치 시킵니다. 2. 첫번째 인덱스를 제외한 나머지 배열을 조건검사하여 가장 작은 값을 두번째 인덱스와 스위치 시킵니다. 3. 첫번째와 두번째 ..
Algorithm - intro 안녕하세요 : ) shiny ocean입니다. 3학년 2학기를 맞이하며 새롭게 다루어볼 전공 과목중 "블로그에 포스팅을 통해 기록을 남겨야겠다!!" 고 결심한 것은 데이터베이스와 알고리즘 두 과목이었습니다. 이번 카테고리는 그중 알고리즘에 대한 내용을 다루어 보겠습니다. 들어가기전에 잡담을 먼저 해보겠습니다. 시작하자 마자 정렬의 종류는 퀵, 선택, 병합 어쩌구 시간복잡도는 저쩌구 하면 거부감만 들거 같습니다 하지만 유감스럽게도 다음 포스팅부터는 그렇게 할것입니다... 어쨋든 이번 포스팅에서 해볼 이야기는 "알고리즘이 무엇일까"에 대해 초점을 맞춰 보겠습니다. 알고리즘? 제가 저 단어를 처음 접해본것은 알파고와 이세돌9단의 바둑경기가 이슈였을때 입니다. 제가 고등학교 3학..
안녕하세요 shiny ocean 입니다 : ) 벌써 3학년 2학기가 시작되었습니다. 요즘은 백준 알고리즘 문제 풀이와 대학교 전공과목 수강으로 아주바쁜? 날들을 보내고 있었습니다! 그러다가 데이터베이스 과목 교수님께서 의미 있는 코딩 과제를 주셔서 오랜만에 열심히 한번 해보았습니다. 개발언어와 환경은 자유롭게 선택하게 해주셔서 오랜만에 자바가 쓰고 싶더군요.. 요즘 파이썬으로만 알고리즘 문제를 주구장창 풀어서 그런지 조금 로우레벨의 코딩을 해보고 싶었어요! 물론 자바도 절대 로우레벨은 아니지만 파이썬에 비하면 조금은 신경써줘야 할것들이 많은 편이니까요! 두가지 테이블에 있는 공통된 속성값을 통해 원하는 결과행들을 출력하는 과제였습니다. 각 테이블의 조건 검사 과정이 마치 관계형 데이터베이스(RDB)의 s..
비밀일기 사이트 Plog 개발기! Intro 안녕하세요 ;-) 정말정말 오랜만에 개발관련 포스팅을 끄적이는것 같습니다! 핑계 : 원래는 이번 방학을 이렇게 나태하게 보낼생각은 아니었지만 초반에 계절학기 수강하고 영어시험치루고 나니 웹개발은 시간투자를 잘 하지못했습니다. 이번 방학은 웹개발이 무엇인지 탐구해보고 전반적인 개념을 잡기 위해 Node.js로 많은 삽질을 해봤었습니다. 그런데 몇가지 토이프로젝트를 제외하고 결과물이 없는것 같아서 참 속상했습니다. 방학은 곧 끝나가고... 얼마 남지 않은 기간동안 초라하더라도 DB를 연동한 서비스를 만들어 보고싶었습니다. 그래서 기획하게 된 이번 프로젝트의 진행기간은 딱! 3일이었습니다(8/26~8/28) 어제와 그제는 9시간 오늘은 4시간정도 시간을 투자했던것같..
Review, AWS Innovate - Data Edition (AWS Online conference) 2021. 8. 19. 늦잠... 저는 원래 이번 컨퍼런스에서 나누어진 두가지 참여 시간대중 오전시간을 이용하려했습니다! 그런데 어젯밤에 조금 늦게 까지 핸드폰을보고 조금 늦게잔 바람에 점심시간에 눈이 떠졌습니다.... 그래도 오후 시간대인 2:00~5:00 에 컨퍼런스에 참여 할수있었습니다. 시간대가 두가지로 나누진것은 아주 다행이었습니다!!! 전체적인 진행 흐름 컨퍼런스는 기조연설을 시작으로 두가지 트랙으로 분리되어 진행되었습니다. 이전 포스팅에서 언급한것과 같이 저는 데이터베이스 관련 트랙인 트랙1을 선택하였고 트랙 1은 4가지 세션으로 분리 되어 강연이 진행되었습니다. 클라우드는 데이터 세상..
AWS Innovate - Data Edition (AWS Online conference) 2021. 8. 19. 어떻게 신청하게 되었는가? 토익스피킹 시험을 치룬 지난주 주말을 지나며, 대학교 하계방학이 끝나가고 개강을 앞두고있는데 너무 안주하며 이번 방학을 보낸것이 아닌가 하는 생각에 불안한 감정이 생기게 되었습니다. 내년이면 학부 4학년생으로 올라가게될것이고 취업을 준비하게 될텐데 관심 분야에 대한 전문적인 지식이나 최신 기술 동향에 대한 관심이 얼마나 있을까? 하는 생각이 들었습니다. 누군가 저에게 이러한 것들에 대한 설명을 해주면 얼마나 좋을까! 생각도중 자연스레 개발 컨퍼런스에 관심이 가게 되었습니다. 무료로 전문화된 설명을 해주는 컨퍼런스는 남은 방학기간을 조금이라도 알차게 보낼수있는 기회..
스키마 메소드 모듈분기 안녕하세요:) 지난 포스팅까지 우리는 몽구스 모듈을 활용해서 로그인과 관련된 여러가지 기능들을 구현해 보았습니다. 그런데 쭉쭉 잘 코딩하고 나니 기능적인 문제는 없지만 가독성이 떨어지는것이 문제였습니다. 세,네가지의 DB 운용 메소드들과 요청path에 따른 라우팅 미들웨어들을 쭉 열거하니 코드의 분량이 400라인이 훨신 넘어갔습니다ㅠㅠ 이번 포스팅에서 다루어볼 내용은 메인모듈에서는 스키마 관련 코드(메소드 및 필드 초기화)를 메인 코드에서 분기하여 모듈화하는것을 해보겠습니다. 만약 모듈을 분기한다면 메인이 되는 node파일에서의 가독성은 증가하게 되고 이는 디버깅시에도 훨씬 유리하게 작용할것입니다. 파이썬 장고 프레임워크에서는 새로운 웹프로젝트 또는 웹앱 에디팅을 시작하게 되면 분..