본문 바로가기

분류 전체보기

(167)
[북메모] 클린 아키텍처 - 프로그래밍 패러다임 구조적 프로그래밍 구조적 프로그래밍이 오늘날까지 가치 있는 이유는 프로그래밍에서 반증 가능한 단위를 만들어 낼 수 있는 바로 이 능력때문이다. 또한 흔히 현대적 언어가 아무런 제약 없는 goto 문장은 지원하지 않는 이유이기도 하다. 뿐만 아니라 아키텍처 관점에서는 기능적 분해를 최고의 실천법 중 하나로 여기는 이유이기도 하다. 가장 작은 기능에서부터 가장 큰 컴포넌트에 이르기까지 모든 수준에서 소프트웨어는 과학과 같고, 따라서 반증 가능성에 의해 주도된다. 소프트웨어 아키텍트는 모듈, 컴포넌트 서비스가 쉽게 반증 가능하도록(테스트하기 쉽도록) 만들기 위해 분주히 노력해야 한다. 이를 위해 구조적 프로그래밍과 유사한 제한적인 규칙들을 받아들여 활용해야 한다. 객체지향 프로그래밍 객체지향이란 무엇인가? 이..
[북메모] 필요한 부분, 핵심만 골라 읽는 대충 독서법 수장선고라는 말이 있다. 물이 늘어나면 배는 저절로 높이 올라간다는 말이다. 물이 적으면 배가 높아질 수가 없다. 책을 읽는다는 것은 내면에 물을 채우는 것과 같다. 책을 읽을수록 내 생각의 수준은 높아지고 의식은 깊어진다. - p180
[MySQL ] ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''테이블-이름' 테이블 만들때 테이블명에 하이픈이 있다면 따옴표가 아니라 `` 로 감싸줘야 에러 안난다.
[가비아] Node.js 웹호스팅 세팅 보호되어 있는 글입니다.
[테트리스 만들기] 점수와 난이도, 게임 종료/중지 하드드랍 안전장치 space를 눌러서 블록을 내릴때 가끔 발생하는 에러 해결 현재 블록이 하드드롭인 상태일때는 x축 y축을 변경 못하는 코드를 추가하자 class Piece { hardDropped; spawn() { // ... 기존 코드 this.hardDropped = false; } move(p) { if(!this.hardDropped){ this.x = p.x; this.y = p.y; } this.shape = p.shape; } hardDrop(){ this.hardDropped = true; } } //*** main.js // 스페이스 누를 경우 하드 드롭 if (event.keyCode === KEY.SPACE) { while (board.valid(p)) { account.score..
[Custom Hooks] useInput(유효성검사 추가) - 추가중 useInput 예전에 노마드코더 강의 보고 만든 커스텀 훅에 유효성검사 함수들을 추가 적용할 수 있게 기능 개선 두번째 파라미터는 배열이고 필수는 아니나 배열에 함수가 아닌 다른 값을 넣으면 에러를 발생 사용자에게 뭘 잘못한건지 알려주기위해 잘못된 점을 로그로 출력함 /** * 입력하는 값 반영하고 유효성검사를 추가 할수 있는 커스텀 훅 * @param {string} initialValue - input의 초기값. * @param {string} validators - useInput에 적용될 유효성검사 함수를 담은 배열 */ export const useInput = (initialValue, validators) => { const [value, setValue] = useState(initial..
[NVM] Node.js 설치 맥북 포맷해서 다시 설치하는 김에 남겨본다. NVM으로 node.js를 설치하면 언제든지 node.js 버젼을 바꿔가면서 적용할 수 있어서 무척 편리하다. mac은 필수로 사용하는걸 권장한다. 공식 사이트 가서 curl로 시작하는 설치 스크립트 복사해서 입력 https://github.com/nvm-sh/nvm#install-script 맥의 OS버전 높아지면서 기본쉘이 bash에서 zsh로 변경되었으니 쉘에 맞는 명령어를 입력하자. 파일 수정 // bash vi ~/.bash_profile // zsh vi ~/.zshrcvi에서 아래 입력하고 저장하고 종료한다 vi 사용법을 모른다면 i 눌러서 입력모드로 바꾸고 아래 소스 복붙하고 esc 누르고 : 누르고 wq 누르면 된다. export NVM_DIR..
[lambda] forEach(), map(), filter(), reduce() java8에 추가된 lambda식에 보면 자바스크립트의 ES6의 배열 메서드들과 유사한 메서들이 존재한다. forEach() : 리스트를 순회한다. map() : 가공해서 반환할 수 있다. filter() : 필터링한 값을 반환 한다. reduce() : 매개변수 넣은 값과 콜백함수에서 연산한 값을 반환한다. 자바스크립트 reduce랑 사용법이 다르지만 연산처리 할 수 있는건 공통점이다. public class ListStream { public static void main(String[] args) { List list = Arrays.asList(1,2,3,4,5,6,7,8,9,10); System.out.print("5보다 큰 수만 filter : "); list.stream().filter(v ..