Posts
DB
데이터베이스, 한재엽님의 Part 1-5 데이터베이스를 기반으로 여러분들의 블로그를 참조!
JS - 인라인캐싱을 고려한 최적화(Chrome only)
크롬의 V8 자바스크립트 엔진에는 최적화를 위해 ‘inline caching’라는 기법을 사용한다.
JavaScript essentials: why you should know how the engine works와 자바스크립트 엔진의 최적화 기법 (2) - Hidden class, Inline Caching의 내용을 참고
OS
운영체제, 한재엽님의 Part 1-4 OS를 기반으로 여러분들의 블로그를 참조!
Network
데이터 구조, 한재엽님의 Part 1-3 Network를 기반으로 여러분들의 블로그를 참조!
data structure
데이터 구조, 한재엽님의 Part 1-2 Data Structure를 기반으로 여러분들의 블로그를 참조!
객체지향, RESTful API, TDD, 함수형프로그래밍, MVC pattern, Git(Github)
개발 기본 상식, 한재엽님의 Part 1-1 Development common sense를 기반으로 여러분들의 블로그를 참조!
Django, models, 장고 모델
Models, Django documentation
Django documentation
Django documentation Intro
Look Back My Last 1.5years
<!– — layout: post title: 개발을 시작한지 1년 6개월, 이제 더 이상은 모래위의 텐트에서 지낼 수 없다. categories:
- diary
feature_image: “”
tags: —
개발이라는걸 해보겠노라고 결심하고 학원을 다니고서부터 1년 6개월이 지났다. 나는 어디에 서있는 걸까? 나의 실력은 늘고 있는 것일까? 나는 제대로 걷고 있는 걸까? 나는 무엇을 해야 할까?
Django, view class
Django를 이용하여 MVC패턴의 웹페이지를 만들게되면 Spring의 Controller와 같은 역할을 하는 것이 바로 View이다. 보통은 FBV(Function Based View)를 이용하지만 미리 정의해둔 Model을 기반으로 List와 Detail페이지를 구현하는 경우 CBV를 이용하면 보다 편리하게 구현이 가능하다.
Django, settings.py 나누기
개발 DB와 실제 사용 DB를 나누어 웹페이지를 만들다보면 apache
mobx도 하자!
https://velog.io/@velopert/MobX-1-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-9sjltans3p http://woowabros.github.io/experience/2019/01/02/kimcj-react-mobx.html
Angular, React 그리고 Vue
얼마 전, Draggable UI를 적용하여 Todo list를 관리하는 아주 작은 웹앱을 만들었다. 그리고 멘붕을 겪었다. HTML의 DOM과 Javascript의 데이터를 함께 관리하자니 복잡도가 업청나게 올라가는 경험을 한 것이다. 그래서 React를 한 번 적용해봤다. Javascript로 바로 DOM을 그려버리는 것이 처음에는 좀 복잡해도 HTML과 DOM의 데이터를 sync하는 것 보다 간단했다. React를 좀 더 알아보자니, Angular, Vue 등 프레임워크가 몇 개 더 있는 것 같은데, 이들의 차이를 좀 더 자세히 공부해보자.
React Native 보일러 플레이트 파헤치기
리엑트 네이티브 프로젝트를 시작하노라면
react-native init [PROEJCT명]
를 입력하면 간단히 보일러플레이트가 생성된다. 그런데 말이다.. Javascript의 생태계에 대한 이해도가 낮은 상태이다보니 자꾸 빌드가 안되는 상황이 발생한다. 이번기회에 보일러플레이트가 벌여주는 판을 잘 이해해보자.
(완전탐색)카펫,
프로그래머스의 카펫 문제
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 rturn 하도록 solution 함수를 작성해주세요.
(완전탐색)숫자 야구 게임, 다시 한 번 모든 경우의 조합을 만들어내기
프로그래머스의 숫자 야구 게임 문제
각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다.
- 숫자는 맞지만, 위치가 틀렸을 때는 볼
- 숫자와 위치가 모두 맞을 때는 스트라이크
- 숫자와 위치가 모두 틀렸을 때는 아웃
A : 123
B : 1스트라이크 1볼.
A : 356
B : 1스트라이크 0볼.
A : 327
B : 2스트라이크 0볼.
A : 489
B : 0스트라이크 1볼.
이때 가능한 답은 324와 328 두 가지입니다.
질문한 세 자리의 수, 스트라이크의 수, 볼의 수를 담은 2차원 배열 baseball이 매개변수로 주어질 때, 가능한 답의 개수를 return 하도록 solution 함수를 작성해주세요.
ES6, 객체 선언 시 key값에 계산식 혹은 속성접근자를 사용하는 법
JS에서 Object선언시 키값은 단일 변수 혹은 리터럴 값을 사용해서만 가능했다. 하지만 ES6에서는 [] 브라켓을 이용해서 계산식 혹은 속성접근자를 자유롭게 사용할 수 있다.
Python에 대하여
요즘 부쩍 Python을 많이 사용한다. Java코드를 보다가 오랜만에 Python코드를 보면 마치 그 느낌이 수필을 읽다가 시를 읽는 느낌이다. 그만큼이나 Python은 간결한 스타일을 지향한다.
인터프리터 언어와 컴파일 언어
학원에서 java를 배웠고, 요즘은 python과 javascript를 많이 사용하고 있다. python과 javascript는 인터프리터 언어, java는 컴파일 언어(인터프리터 언어이기도 한단다)라고 하는데, 인터프리터 언어와 컴파일 언어의 차이에 대해서 알아보자.
작업중인 django 프로젝트에 REACT 적용하기
Todolist를 관리할 수 있는 토이프로젝트를 진행하고 있다. 별생각없이 JQuery로 프로젝트를 시작했는데, 기능을 모두 완성하고 나니 나도 알아볼 수 없는 엄청나게 복잡한 코드가
완성(배출)되었다. DOM의 데이터와 DB의 데이터를 realtime sync하는 것이 엄청난 복잡도를 가져왔다. React가 좋은 대안이 될 것이라고 생각하여 추가해보았다.
마크다운 줄바꿈 - atom에서 .md파일 줄바꾸기
Atom에디터에서 markdown 줄바꿈(스페이스바 2개 후 엔터)이 제대로 동작하지 않을땐 core package, ‘whitespace’에서 설정이 필요하다.
Django, DRF의 CSRF validation
django로 간단한 웹은 몇 번 만들어본 적이 있으나(혹은 만드는 것에 참여한) modelForm을 사용해본 적이 없었다. —–
Django, ModelFrom 사용해보기
django로 간단한 웹은 몇 번 만들어본 적이 있으나(혹은 만드는 것에 참여한) modelForm을 사용해본 적이 없었다. 이미 구현해놓은 Model객체로 간단하게 form을 만들 수 있고, html태그로 view에 간단히 전달 할 수 도 있다. 하지만 가장 편리한 건 request로 받아낸 form의 각각의 값(input태그의 value들)을 다시 model객체에 맵핑해주지 않아도 된다는 것이 가장 장점이 아닐까?
(완전탐색)소수찾기, 모든 경우의 조합을 만들어내기, recursive!
프로그래머스의 소수찾기 문제
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.
제한사항
numbers는 길이 1 이상 7 이하인 문자열입니다.
numbers는 0~9까지 숫자만으로 이루어져 있습니다.
013은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.
(완전탐색)모의고사, list의 index통일에 유의하자!
프로그래머스의 모의고사 문제
1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, …
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, …
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, …
1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 제한 조건 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정답은 1, 2, 3, 4, 5중 하나입니다. 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요.
(정렬)H-Index, 완성한 for문도 다시 살피자
프로그래머스의 H-Index문제
H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h가 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.
짧고 이해하기 어려운 코드와 길고 이해하기 쉬운 코드에 대하여
짧고 이해하기 쉬운 코드가 정답이다.
자바의정석 다시 보기
국비교육과정 교재였던 Java의 정석 다시 공부하기! Java기초, 제대로 다시 쌓기! 기초가 튼튼해야 높이 쌓을 수 있다!