여태 빌드도구를 참 다양하게 사용해봤다. 그 역사를 읊자면,,,, 토이프로젝트로 스프링프레임워크 기반의 api 서버를 개발할때는 메이븐으로 빌드했었고, 어플개발할때는 안드로이드스튜디오의 표준 빌드 도구인 그레들을 사용했고, 현재 투입된 현업 플젝에서는 앤트로 빌드하고 있다....... 각각 어떻게 다른지 차이점이 궁금해서 특징을 정리해보았다. 자세한건 다음 포스팅에서~~ 총총총 - 자바 빌드 도구 3가지 소개 (Ant, Maven, Gradle) 1. Apache Ant 앤트는 플랫폼(운영체제)등에 의존하지 않는 자바 프로그램 개발을 대상으로 한 오픈 소스 빌드 도구이다. XML로 작성된 빌드 파일로 빌드를 실행한다. 앤트는 자바에 널리 보급된 최초의 빌드 도구이다. 한때는 '자바 빌드 == 앤트' 라고..
"단기 목표" "몰입" "몰두할만한 무언가가 존재한다는 것" 내가 에너지있게 살아갈 수 있는 요인들은 바로 위의 키워드들이다. 나는 장기 목표보단 단기 목표를 이루는 것에 능하고, 짧은 기간안에 무언가에 몰두해서 시간을 쪼개쓰는 것을 즐기고, 몰두할 만한 무언가가 존재해야 내가 살아있음을 느낀다. 최근 가장 가까운 목표였던 이직을 이루어냈고, 성취감과 행복에 취해있었다. 그러다, 방향을 잃은 나침판이 된 기분을 느꼈고 이 책을 읽게 되었다. 김유진 변호사님의 이야기를 통해 소름이 돋는 간접경험을 할 수 있었다. 소름이 돋았던 포인트중 하나는 바로, 오전 7시에 열리는 모임에 참석한 경험이다. 이 책을 읽은 사람이라면 공감할 수 있을 것이다. 나도 그런 삶을 언젠간 살아볼 것 같은 상상을 잠시나마 하면서 ..
해시 테이블 또는 해시 맵은 키를 값에 매핑할 수 있는 구조를 구현하는 자료구조이다. 해시 테이블의 가장 큰 특징은 대부분의 연산이 시간복잡도가 O(1) 이라는 점이다. 덕분에 데이터 양에 관계 없이 빠른 성능을 기대할 수 있다는 장점이 있다. 1. 해시 해시 테이블의 핵심은 해시 함수다. 해시 함수란 임의 크기 데이터를 고정 크기 값으로 매핑하는 데 사용할 수 있는 함수를 말한다. 여기서 입력값은 ABC, 1324BC, AF32B로 각각 3글자, 6글자, 5글자이지만, 화살표로 표시한 특정 함수를 통과하면 2바이트의 고정 크기 값으로 매핑된다. 여기서 화살표 역할을 하는 함수가 바로 해시 함수다. (해시 함수를 만드는 방법론도 하나의 주제가 될 수 있지만 코딩테스트 주제를 벗어난다. 참고로, 구글은 해..
[문제] https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 와.. 이 문제는 정말 블로그에 박제할 수 밖에 없는 넘나 인상적인 문제이다. !!!! 🤦🏻♀️ 🤦🏻♀️ 🤦🏻♀️ 먼저, 내가 틀렸던 테스트 케이스를 공유하겠다. 이 테스트 케이스를 만들어내는 것도 정말 오래 걸렸다. 아무리 테케 만들어도 다 맞는걸 우째,, 오류나는 테스트케이스 찾음 ... 답은 9인데 -1이나옴. 4 6 010011 011001 00001..
API를 개발하다 보면 비동기적으로 처리해야 하는 무거운 로직을 개발해야 할 순간이 발생한다. 이때 비동기 처리 프로세스를 정리해보려고 한다. 1) 장고 어플리케이션에서 비동기적으로 일을 처리해야 할 때 일단 프론트에 응답(큐 적재 성공 시 200, 적재 실패 시 500)하고, (진짜 결과를 응답하는게 아님, 진짜 로직을 처리한 결과는 Redis에 저장) RabbitMQ에 메세지(비동기task를 가리키는)를 적재한다. 2) Celery Worker는 같은 메세지큐를 바라보게 해서 메세지 가져오고 진짜 task를 수행한다. 3) Worker가 task 수행한 후에 결과를 Redis 서버에 저장한다. 1.RabbitMQ 서버 띄우기 ✔️rabbitmq-server 2. Redis 실행 및 중단 ✔️brew ..
클라이언트에서 요청을 보낸다. 웹서버는 요청을 받는다. 이 때, 동적인 페이지를 요청했다면 WSGI 서버를 호출한다. 웹서버는 Nginx, Apache 같은 소프트웨어이다. 웹 서버의 역할 웹 페이지를 클라이언트로 전달한다. 주로 그림, css, 자바스크립트를 포함한 html 문서가 클라이언트로 전달된다. WSGI 서버는 장고(WSGI를 사용하는 웹 어플리케이션, WSGI는 파이썬에 종속적임) 를 호출한다. WSGI 서버는 장고와 통신할 때 'wsgi.py' 파일을 통해 장고 어플리케이션을 호출한다. 만약 프로젝트의 디렉토리 구조를 커스터마이징하여 settings.py 파일이 이동하게 된다면 그 경로를 여기서 반드시 수정한다. 참고로 장고 내장서버는 WSGI 기능을 자체적으로 포함한다. (python m..
🥨 데커레이터(decorator)는 무엇인가 함수 데커레이터는 소스 코드에 있는 함수를 '표시'해서 함수의 작동을 개선할 수 있게 해준다. 1. 데커레이터는 데커레이트된 함수를 다른 함수로 대체하는 능력이 있다. 2. 데커레이터는 모듈이 로딩될 때 바로 실행된다. 대부분의 데커레이터는 데커레이트된 함수를 변경한다. 즉, 내부 함수를 정의하고 그것을 반환하여 데커레이트된 함수를 대체한다. 내부 함수를 사용하는 코드는 제대로 작동하기 위해 거의 항상 클로저에 의존한다. 🥨 파이썬이 데커레이터를 실행하는 시점 데커레이터의 핵심 특징은 데커레이트된 함수가 정의된 직후에 실행된다는 것이다. 이는 일반적으로 파이썬이 모듈을 로딩하는 시점, 즉 임포트 타임에 실행된다. 함수 데커레이터는 모듈이 임포트되자마자 실행되지..
둘 다 데이터를 바인딩할 수 있지만, 큰 차이점이 있습니다. 단순히 문자냐 기호냐 또는 가독성의 차이가 아닙니다. 개발 시에 꼭 인지를 해야하는 정보이기 때문에 공유하게 되었습니다. 🍟concat : 합치려는 값중에 널이 존재할 경우 그 것을 무시하고 합칩니다. 🍟|| : 합치려는 값 중에 하나라도 널이 존재할 경우 널을 반환합니다. 항상 원하는 결과를 내놓지 않을 수 있기 때문에 주의해야 합니다. 📌tip 이때, ||을 사용하여 데이터를 접합하면서 널을 무시하게 하려면, coalesce(컬럼명, '') 을 통해 널값을 빈문자열로 바꾸는 방식이 있습니다.
※ 모듈(Module)이란 함수, 변수들의 집합으로 ~.js 파일로 작성됨 모듈로 만들면 여러 프로그램에서 재사용 가능 ※ CommonJS 모듈 - Node.js 기본 module.exports 로 내보낼 객체 또는 함수 지정해야 함 require() 함수로 모듈 가져올 수 있음 require()를 여러 번 실행하더라도 모듈은 한번만 실행 따라서 리턴된 객체 또는 함수는 동일 !! exports 는 module.exports 를 참조한다. exports는 속성 또는 메소드만 작성 가능 module.exports에 새로운 객체를 대입하면 exports는 사용 못함(참조가 깨지기 때문!!! - 주의) ※ ES6 모듈 - Node.js 지원 , React 기본 ECMA Script 2015(ES2015, ES..
1. Node.js 개념 및 내부 구조 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 런타임: 프로그램들을 실행할 수 있게 해주는 가상 머신이다. [내부 구조] V8 엔진 : 오픈 소스 자바스크립트 엔진 libuv : 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리 우리는 Node.js Core Library만 알면 되고, 나머지는 내부적으로 작동된다. 2. Node.js 특징 1. 이벤트 기반 처리 이벤트가 발생할 때 이벤트 핸들러(리스너)에 미리 지정해둔 작업(콜백 함수)을 수행하는 방식이다. -> 즉, 이벤트 기반 처리기 때문에 비동기가 쉬워진다. 2. 논블로킹(=비동기) I/O 처리 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행 I/O 작업(파일 ..
- Total
- Today
- Yesterday
- 사용자정의예외클래스
- Git
- os
- es6모듈
- yarn start
- 자바빌드도구
- 생성자필드메소드
- nunjucks
- 클래스와객체
- 객체지향개념
- nodejs
- 익명자식객체
- 메이븐 저장소
- @functools.singledispatch
- 정적멤버
- method와 function
- 자바스레드
- dynamic-project
- 백준
- 인스턴스멤버
- java
- 백준2206 파이썬 풀이
- @functools.lru_cache
- ES6
- jdk
- jre
- sequelize.fn
- @functools.wraps
- 자바스크립트Call-back
- 자바스크립트Promise
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |