STUDY

  • [ JS ] Prototype

    [ JS ] Prototype

    0. 개요 js에 대한 깊은 이해를 통해 최적의 성능을 낼 수 있는 웹애플리케이션 개발을 위해 개발언어로서 JS의 기본을 공부하기로 했습니다.그 시작으로 js의 근간이 되는 prototype에 대한 개념과 활용에 대하여 공부했습니다. 1. 학습목적 개발언어적 관점에서의 javascript 분석 깊은 이해를 통한 최적화된 js 프로그래밍 지향 2. 학습내용 1) Javascript 소개 Javascript는 가벼운, 인터프리터 혹은 jit (just-in-time) 컴파일 프로그래밍 언어로, 일급함수를 지원하는 프로토타입 기반, 다중 패러다임, 단일 스레드, 동적언어 입니다. - MDN Web Docs MDN의 소개와 같이 js는 여러가지 특징을 가진, 특히 이 게시물에서 알아볼 '프로토타입' 기반 언어입..

  • [ JS ] Babel & EsLint

    0. 개요 js에 대한 깊은 이해를 통해 최적의 성능을 낼 수 있는 웹애플리케이션 개발을 위해 개발언어로서 JS의 기본을 공부하기로 했습니다. js의 기초에 이어 js개발에 도움을 주는 프레임워크인 Babel 과 EsLint를 공부했습니다. 1. 학습목적 Babel과 EsLint의 필요목적 Babel과 EsLint의 동작원리 및 이용 2. 학습내용 1) Babel Babel은 자바스크립트 컴파일러로, 최신 버전의 js로 작성된 코드들을 하위버전의 브라우저가 읽을 수 있도록 변환해주는 역할을 합니다. 2) Babel을 사용하는 이유 js는 여러 버전들이 존재하는데, 표준화된 버전부터 따져보자면 1997년에 출시한 ES1을 시작으로 현재 ES9까지 출시되어 있습니다. 특히 ES6 이후 개발자들의 입장에서 유..

  • [ JS ] 아토믹 컴포넌트 디자인 개발 패턴

    # Reference Brunch - 아토믹(Atomic) 컴포넌트 디자인 개발 패턴; 대형 프로젝트를 위한 코드 재사용 최적화 컴포넌트 관리법 by 한상훈 https://brunch.co.kr/@skykamja24/580 아토믹(Atomic) 컴포넌트 디자인 개발 패턴 대형 프로젝트를 위한 코드 재사용 최적화 컴포넌트 관리법 | 대형 프로젝트에서는 최적화된 코드 재사용이 필수입니다. 이를 위해서 대두된 코드 디자인 패턴 중 하나는 바로 아토믹(Atomic) 디 brunch.co.kr Github - Do-IT-Page 컴포넌트 구성방식 by Coreight98 https://github.com/Coreight98/Do-IT-Page/ GitHub - Coreight98/Do-IT-Page: 아주대학교..

  • [ CSS ] CSS 렌더링 흐름

    [ CSS ] CSS 렌더링 흐름

    # Reference aproid blog - CSS Transition 성능 최적화 by aproid https://aproid.github.io/2019/03/21/transition-optimize/ CSS Transition 성능 최적화 — Aproid CSS3의 강력한 기능중 하나인 Transition, 하지만 대부분의 개발자는 Transition 사용의 주의점을 알지 못하고 사용하여 모바일같은 성능이 좋지 못한 기기에서 부드러운 효과를 보지 못하는 경우가 자 aproid.github.io yceffort blog - CSS 성능 향상시키기 https://yceffort.kr/2021/03/improve-css-performance#css%EB%8A%94-%EC%96%B4%EB%96%BB%EA%..

  • [백준] 분수찾기 (1193)

    [백준] 분수찾기 (1193)

    #풀이일: 2021.08.29 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 우선 2가지 방향성을 잡고 탐색방법을 고안해보았다. i) 첫번째부터 계속 값을 증가시키며 입력 위치의 값을 찾아내는 방법 ii) 대각선 방향으로 탐색하여 입력위치의 값을 찾아내는 방법 i은 단순히 생각하여도 시간복잡도가 너무 커 ii의 방향으로 풀어보기로 하였다. 특히 ii의 방향으로 고려한다면 엄청나게 큰 숫자가 들어왔을 때에도 비교적 적은 횟수의 for문 순회로 빠르게 해당 값이 포함된 영역 근처로 접근이 가능하였기 때문에, 큰 값이 들어온다는 점을 기준으로 코드를 작성했다. 이 방식은 1학기 ..

  • [백준] 벌집 (2292)

    # 풀이일: 2021.08.20 https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 벌집 모양에서 겉으로 한칸씩 멀어질 때마다 해당 바퀴에 해당하는 벌집 칸이 6의 배수로 늘어나는 패턴을 찾아 이를 활용했다. #include int main() { int i = 1, c = 1, n; scanf("%d", &n); while(1) { if (c >= n) { printf("%d", i); break; } else c += 6*i++; } return 0; ..

  • [과제] 달팽이 수열

    [과제] 달팽이 수열

    * 과제들 중 어려웠던 문제를 모아 올립니다 처음엔 for문을 돌리며 특정 수식에 대입, 들어가는 값을 즉석에서 구하고 출력하며 넘어가려고 했는데.. 30분동안 고민해도 안되서 결국 다른 방식으로 풀음 *Point: 벽에 부딛치면 -> 숫자가 들어가는 방향을 직각으로 꺾는다 (시계방향) 이 개념을 기준으로 계산했고, 배열 index와 숫자가 햇갈려 영어 알파벳으로 치환하여 그려가며 풀음 #include #include #include #include int main() { int inp, loc = 0, pushnum = 0, pushdeg = 0; scanf("%d", &inp); int* arr = malloc(sizeof(int) * pow(inp, 2)); memset(arr, 0, sizeof(..

Portfolio

  • [ 아대밀맵 ] 프로젝트 개요

    0. Project Introduction 프로젝트 기간: 2021.06.16 ~ 프로젝트 재시작: 2021.08.13 ~ TL; DR 아주대 인근 밥집 API 및 서비스화 프로젝트 크게 3가지 문제점을 발견하고, 이들을 보완할 수 있는 서비스를 개발하고자 이 프로젝트를 기획함. 1. 코로나로 인한 대학가 맛집정보의 침체 2. 자취생들의 메뉴고민 3. 이커머스성 정보로 인한 데이터 오염 프로젝트 기획당시 개인 및 학과 내 사용을 목적으로 한 서비스였지만, 소학회 프로젝트 등록 및 지원사업을 통해 아주대 인근 맛집 및 주점 API 및 서비스화 프로젝트로 확장함. * 이 프로젝트는 네이버 D2 사업의 지원을 받습니다.

  • [ Base ] 프로젝트 개요

    [ Base ] 프로젝트 개요

    0. Project Introduction TL; DR 분화되어있는 음원정보들을 한곳으로 모아 통합 음원정보 API를 구축하고 개발자 및 일반 사용자들에게 접근성을 향상시키기 위함 음악 관련 프로젝트를 위해서는 크롤링이나 수동적인 데이터 주입이 필수였습니다. 하지만 음악 정보를 활용하기 위해서는 다양한 제약이 존재했습니다. 1. 독점적인 시장구조와 데이터 수집의 어려움 # Reference: https://www.pianocroquis.com/173 국내 음원시장은 크게 6개의 회사가 나누어 점유하고 있습니다. 이 회사들은 각자의 음원 데이터베이스를 구축하고, 이를 기반으로 하여 사업을 진행합니다. 따라서 음원 데이터를 수집하기 위해서는 크롤링을 진행하기 위한 회사를 특정해야 하고, 특정한 회사에 맞는 ..