반응형

분류 전체보기 136

[Tech] MVC 디자인 패턴이란?

디자인 패턴이란? 디자인 패턴이란 개발을 하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 특정한 규약을 쉽게 접근할 수 있는 형태로 만든 것을 말한다. MVC란? MVC란 Model, View, Controller의 약자이다. Model은 데이터에 관련된 것이다. 게시판을 예로 들자면, 게시판에 있는 모든 글들은 데이터베이스에 데이터로 저장되게 된다. 이때 데이터의 형식을 지정하고 저장하고 불러오는 것과 같은 코드들이 Model에 속한다. 이러한 데이터들을 html과 css 등으로 시각적으로 볼 수 있게 해주는 영역이 View 파트이다. 마지막으로 model의 데이터를 view에 연결해서 사용자가 view 화면에서 model의 데이터를 gui로 읽고 쓰고 지우게 할 수 ..

[Conference] DEVIEW 2019 DAY1 리뷰

2019-10-29일 NAVER에서 주최하는 국내 최대 규모의 개발 컨퍼런스 deview2019가 주최되었다. 참석 경쟁률이 어마어마했는데 필자는 네이버 시계로 참여 시간과 동시에 등록을 했지만 이미 정원이 초과된 이후였다. 이번 deview는 참석을 못하는구나 하고 있었는데 주변 지인이 자기 참여 티켓을 양도해주어 감사하게 참여하게 되었다. 4차 산업혁명이라는 단어가 2016년 세계 경제 포럼에 처음 주창된 이례로 연일 IT에 대한 붐이 끊이지 않고있다. 특히 우리나라는 IT 강국으로써 이 IT에 관한 R&D나 투자를 아끼지 않는 모습을 모였는데 오늘 deview에서 이러한 모습이 더 잘 드러나지 않았나 싶다. DAY1은 대부분 R&D의 관점에서 바라보는 AI에 관련된 세션들이 많았다. 많은 세션들이 ..

Forum/Conference 2019.10.28

[개발 환경] git을 이용해서 VScode 개발 환경 동기화

다른 환경에서 개발을 해야 하거나, 컴퓨터를 바꾸거나와 같은 일이 있을 때, 그때마다 새로 개발 환경을 세팅한다면 여간 번거로운 일이 아닐 것이다. 이번 포스팅에서는 githup을 이용해서 VScode 개발 환경을 동기화시키고 쉽게 개발 환경을 세팅할 수 있는 방법을 설명하겠다. (필자는 내일 맥북 프로를 수리 맡껴야해서 눈물을 흘리며 포스팅하고 있다. 당분간 윈도 진영에 거주할 예정) Setting Sync install VScode에서 왼쪽 EXTENSIONS 탭을 누른 후 sync라고 검색하면 이미지와 같이 Settings Sync라는 확장 프로그램이 나온다. Sync: Reset Extension Settings 혹시 이전에 sync를 한 적이 있다면 기존 정보를 지우는 작업을 먼저 해주도록 한다..

Forum/개발 환경 2019.10.27

[AWS] RDS 설정하기

Amazon Relational Database Service(Amazon RDS)란? RDS는 AWS Cloud에서 제공하는 관계형 데이터베이스이다. 쉽게 설치, 운영 및 확장할 수 있고, 필요한 용량을 조절할 수 있다. RDS 설정하기 EC2->[네트워크 및 보안] 보안 그룹 -> 보안 그룹 생성 ※ EC2 설정 (참고: https://ooeunz.tistory.com/35?category=816210) 아래 이미지와 같이 생성한다. 그런 다음 AWS 로고 옆 서비스를 클릭한 이후 RDS 대시보드로 이동한다. ※ 만약 프리티어가 종료되었다면 RDS가 아닌 EC2 내에 직접 서버를 설치하는 방법도 있다. 데이터베이스 생성 버튼을 누른다. 이후 이미지 설명을 따라온다. 이후 데이터베이스 생성 버튼을 누르..

Cloud/AWS 2019.10.26

[AWS] EC2 서버 사용하기

인스턴스 생성하기 Amazon Elastic Compute Cloud(Amazon EC2)는 AWS의 대표적인 가상 컴퓨팅 환경 중 하나이다. 지금부터 프리티어로 EC2 초기 세팅을 해보도록 하겠다. 먼저 AWS에 가입한 이후(이전 포스팅 참조) 메인화면에서 오른쪽 상단에 서비스를 누른 후, 컴퓨팅 메뉴에서 EC2를 선택한다. 그럼 EC2 대시보드로 집입하게 되는데 그곳에서 인스턴스 생성을 클릭한다. 그 후 AmazonMachine Image(AMI) : 인스턴스를 시작하는데 필요한 소프트웨어 구성 (운영 체제, 애플리케이션 서버, 애플리케이션)을 선택하는 화면이 나온다. 원하는 AMI를 선택하면 되지만, 필자는 Linux Ubuntu가 익숙하므로 Ubuntu AMI를 선택하도록 하겠다. 선택 버튼을 누..

Cloud/AWS 2019.10.26

[AWS] AWS란?

AWS란? AWS(amazone web service)란 아마존에서 운영하는 Cloud Computing Platform이다. 흔히 아마존이라고 하면 쇼핑몰을 떠올리기 쉽지만, 사실 아마존의 가장 큰 매출을 담당하고 유명한 서비스는 AWS이다. AWS를 이용하면 손쉽게 클라우드로 서버를 구축할 수 있고, 개발자가 신경 써야 할 많은 부분을 aws가 해결해주기 때문에 백엔드 개발자를 꿈꾸고 있다면 필수적으로 경험해보아야 할 서비스라고 할 수 있다. On-premise란? 서버를 구축하는 가장 일반적인 방법이다. 자체적으로 보유한 전산실 서버에 직적 서버를 설치하고 운영하는 방식을 말한다. 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라의 일반적인 방식이었다. 클라우드 컴퓨팅이란? 쉬운 의미로 서버 가상..

Cloud/AWS 2019.10.25

[Algorithm] 알고리즘 별 시간 복잡도 비교해보기

문제 [-7, 4, -3, 6, 3, -8, 3, 4]로 이루어진 1차원 배열이 있을 때 합이 최대인 부분 구간을 찾는 알고리즘을 만들어보도록 하겠다. 최대 합을 갖는 구간은 [4, -3, 6, 3]으로 합이 10이다. ※python 언어를 사용하여 구현함. BruteForce 알고리즘 : O(N^2), O(N^3) inefficient_max_sum()함수는 주어진 배열의 모든 부분 구간을 순회하면서 그 합을 계산하는 알고리즘이다. 이 알고리즘은 O(N^2)개의 후보 구간을 검색하고, 각 구간의 합을 구하는데 O(N)의 시간이 걸리기 때문에 이 함수의 총 알고리즘 시간 복잡도는 O(N^3)이 된다. better_max_sum()함수는 위의 함수를 조금 변형하여서 O(N^2)의 시간 복잡도를 나타낸다. ..

[IT 이야기] BTT : Better Touch Tool을 이용한 맥북 터치바 커스텀

2016년 애플에서는 새로운 디자인의 맥북프로를 출시하였다. 더 얇아진 디자인과 버터플라이 키보드, 그리고 터치 바. 맥북프로가 터치바를 장착한 첫 랩탑인 것은 아니다. 그 이전에도 터치바를 장착한 다른 랩탑이 있었지만, 지금 보이지 않는 것은 효용성에서 특별한 이득이 없었고, 오히려 불편하다는 지적이 많았기 때문이다. 그럼에도 애플이 터치바를 장착한 랩탑을 출시한 것은 자기들만의 독보적인 OS와 연동하여 여러가지 편의성을 제공해줄 수 있다는 자신감이 있었을 것이라 생각한다. 하지만 출시 당시 많은 사람들이 터치바를 장착한 맥북프로에 반감을 가졌던 것은 사실이다. 그럼에도 사람들이 터치바가 있는 맥북프로를 구입할 수 밖에 없었던 것은, 15인치에서는 터치바가 필수로 장착되었고, 그나마 터치바 유무를 선택..

Forum/IT 이야기 2019.10.24

[Python] Dequeue 사용하기

큐는 어떤 자료구조인가? 큐는 자료의 선입선출, FIFO(First-In-First-Out)을 보장하는 자료구조이다. 흔히 줄을 서 있는 사람들을 생각하면 쉽게 이해할 수 있다. 먼저 줄을 선 사람이 먼저 줄에서 벗어나는 것과 같다. Reference https://www.youtube.com/watch?v=W3jNbNGyjMs deque 객체 deque는 스택과 큐를 합친 자료구조이다. 가장자리에 원소를 넣거나 뺄 수 있다. 메서드 설명 deque(iterable, [, maxlen]) 초기화 함수이다. iterable(리스트 등)을 인자로 건내면 이를 deque화 시켜준다. append(x) x를 덱의 오른쪽에 삽입한다. popleft() 덱의 가장 왼쪽에 있는 원소를 덱에서 제거하고, 그 값을 리턴..

Language/Python 2019.10.24

[Algorithm] 시간 복잡도(time complexity)와 알고리즘 수행 시간

빠른 알고리즘을 만들기 위해 가장 먼저 해야 할 일은 바로 알고리즘의 속도를 측정하는 것이다. 이러한 알고리즘의 속도를 비교하는 가장 직관적인 방법은 각각을 프로그램으로 구현한 뒤 같은 입력에 대해 두 프로그램의 수행 시간을 측정하는 것일 것이다. 하지만 이러한 방법은 일반적인 기준이 되기에는 부적합하다. 프로그램의 수행 시간은 사용한 프로그래밍 언어, 하드웨어, 운영체제, 컴파일러까지 수많은 요소에 의해 바뀔 수 있기 때문이다. 그렇다면 알고리즘의 수행 시간을 어떤 기준으로 측정해야 할까? 반복문이 알고리즘 수행 시간을 지배한다. 한 가지 항목이 전체의 대소를 좌지우지하는 것을 지배한다(dominate)라고 표현한다. 알고리즘에서 이러한 역할을 하는 것이 바로 반복문이다. 물론 입력에 상관 없이 항상 ..

반응형