본문 바로가기

Study16

[Clean Architecture] 2부를 읽고 정리하며 생각해보기 1. 구조적 프로그래밍 제어흐름의 직접적인 전환에 대한 규칙 부과 최초로 적용된 패러다임이다. goto문을 제거하며 점프들을 if, then, else, do, while, until로 대체한다. 모듈 기반 알고리즘에 활용한다. 프로그래밍에도 과학적, 수학적원리를 적용할 수 있을까? 유클리드 계층 구조는 증명 없이 참으로 받아들이는 명제이다. 이 구조를 코드와 결합시켜 코드가 올바르다는 사실을 스스로 증명하는 방식으로 프로그램에 적용했다. 단, 이러한 제어구조는 순차적으로 실행되어야 한다. 이를 통해 모든 프로그램을 순차, 분기, 반복 3가지 구조로 표현할 수 있다는 것을 증명했다. 2. 객체 지향 프로그래밍 제어흐름의 간접적인 전환에 대해 규칙 부과 함수 포인터를 제거하며 객체로 대체한다. 함수 호출 .. 2022. 6. 20.
[Clean Architecture] 1부를 읽고 정리하며 생각해보기 로버트C. 마틴의 Clean Architecture는 개발자 필독서라고 불리는 책 중 하나이다. 이 책을 공부하면서 이해가 되지 않는 부분이나 나의 궁금증을 함께 정리해보고자 한다. 필독서라고 해도 다양한 의견이 존재할 수는 있지 않을까..? 저자가 이 책을 쓰게 된 이유에 대해 지금까지 구축한 다양한 시스템들이 있지만 이들은 모두 비슷한 아키텍처 규칙을 공유한다. 따라서 소프트웨어 아키텍처의 규칙은 다른 모든 변수에 독립적이다. 반세기 동안 하드웨어는 많이 변해온 것에 비해, 소프트웨어는 여전히 순차, 분기, 반복의 집합체이다. 좋은 소프트웨어 설계의 목표? 프로그램을 동작하게 만드는 것과 제대로 만드는 일은 전혀 다르다. 제대로 된 소프트웨어를 만들면 최소한의 노력으로 기능과 유연성을 최대화할 수 .. 2022. 6. 20.
MySQL 총정리 테이블의 모든 내용 조회 (SELECT)SELECT * FROM [테이블이름]/// *은 모든 열을 조회한다는 것을 의미 조건에 따른 테이블 조회 (WHERE)SELECT * FROM [테이블이름] WHERE [조건문] ;/// 조건문에서 같은 것을 찾을 때는 ==가 아닌 = 사용/// 다른 것을 찾을 때는 not [열이름] = [내용] /// 숫자는 그냥 입력하되 문자열은 ' ' 로 감싸서 표기/// 문자열은 웬만하면 LIKE '%[문자열]%'로 찾자 테이블 여러개 사용테이블이름을 그대로 사용SELECT [테이블1].[열이름] [테이블2].[열이름] FROM [테이블1], [테이블2]; 테이블에 별칭 붙여서 사용SELECT [테이블별칭1].[열이름] [테이블별칭2].[열이름.. 2020. 12. 30.
3. mysql과 node.js를 연결한 로그인/회원가입 예제 0. 앞선 내용은 이전 글 참조 https://gyeombi.tistory.com/31 show databases; >use web; >show tables; 테이블 없을 시 테이블 생성 CREATE TABLE IF NOT EXISTS user ( id int(12) NOT NULL, username varchar(50) NOT NULL, password varchar(255) NOT NULL, email varchar(100) NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; user table의 id열의 type이 int이고 primary key로 설정하고, 자동으로 번호가 올라게, null이 아니도록 수정한다는 의미 alter tabl.. 2020. 12. 6.