전체 글 868

[작성중][헥사고날 아키텍처] - 1. 기본 개념, 도메인 헥사곤

아키텍처의 중요성 보통 서비스가 고도화됨에 따라 누적 기능이 증가하는 속도가 느려진다. 도메인의 로직이 고도화되고 상호 작용이 늘어날수록 기능을 추가하는게 어려워지기 때문이다. 선행 설계에 드는 비용 대비 기능 추가 비용의 조화가 필요한 것이 원칙이지만, 아키텍처도 이런 tradeoff를 줄여주는 중요한 요소이다. 1. 헥사고날 아키텍처의 기본 개념 내부에서부터 도메인 헥사곤, 애플리케이션 헥사곤, 프레임워크 헥사곤으로 구성된다. [헥사곤 구조 그림 넣기] 1-1. 도메인 헥사곤 엔티티(entity)와 값 객체(value object)로 이루어진다. 엔티티는 도메인을 표현하는 속성값들의 집합? 정도이고, 값 객체는 프로젝트에서 임의로 변경할 수 없지만 Type으로 정규화하는 enum 같은 값이라고 한다...

맥북 OSX 초기화, 응용 프로그램 설치 목록

1. 공통, 로컬 chrome- 북마크 처리, brave browser, scroll reverser, iscreen shoter, spectacle, karabiner-elements, runcat, qview, displayLink?, 설정 마우스 속도, 키보드 입력 속도, 시작프로그램 또는 제어-손쉬운사용에서 백그라운드 프로그램 추가, 비밀번호 변경, 우상단 위젯 달력, 날씨로 변경, dock 왼쪽 정렬 처리, 로그인 시 시동음 끄기, 경고음 끄기, display-다크 모드 처리, 제어센터 - 블루투스 및 사운드를 메뉴바에 표시하기로 변경, 잠금화면 설정 및 잠금화면 꺼지는 시간 설정, 지문 등록(touchID) 2. 개발 docker hub, aws-cli, jetbrains toolbox, ho..

생활코딩 codeigniter - 5. 이메일 전송, CLI, queue&cron, caching

1. 이메일 전송 이메일 라이브러리 사용 새로운 글이 등록되었을 때 이메일을 전송해준다는 기능을 가정하여 처리해본다. 기본적으로 제공하는 라이브러리를 사용하는 것이여서, 라이브러리를 사용하고 확장해보는 예제라고 생각하고 처리해보면 된다. $this->load->model('user_model'); $users = $this->user_model->gets(); // user 모델에 정의한 모든 user 정보들을 가져오는 메서드 $this->load->library('email'); foreach($users as $user){ $this->email->from('admin@gmail.com', 'name'); $this->email->to($user->email); //모든 유저에게 전송 $this->e..

생활코딩 codeigniter - 4. 세션, 사용자 인증, Core 확장처리, 로그인, 회원가입

1. Session & 사용자 인증 Session 설정 CI에서 세션 처리를 위해서 필수적으로 수정해야하는 부분은 아래와 같다. 당연히 encryption_key 값은 유출되면 안된다. 그리고 DB에 저장하지 않고 파일로써 컴퓨터에 저장하면 사용자의 로컬 컴퓨터에 저장되므로 보안상 위험할 수 있기 때문에 DB에 저장하는 것으로 설정한다. $config['encryption_key'] = ''; // 32글자의 문자 입력 $config['sess_use_database'] = TRUE; // 세션 데이터를 DB에 저장하기 위함 보안을 위해서 추가적으로 수정해야하는 부분은 아래와 같다. ip와 browser까지 체크해주는 옵션이다. $config['sess_match_ip'] = TRUE; $config['..

생활코딩 codeigniter - 3. Config, 로깅, 파일 업로드, CKEditor

1. Config 기본적인 설정값 외에 설정값들을 변경하기 위해 사용한다. root_path/config/ 디렉토리에 위치하여 처리한다. 자주 사용되고 중요한 설정 파일들은 아래와 같다. config.php: 전체적인 설정을 조정한다. database.php: 데이터베이스 관련 설정을 한다. autoload.php: 라이브러리들을 전역으로 로드해준다. hooks.php: CI의 기본적인 동작을 할 수 있는 system 디렉토리에 있는 기능등을 override할 수 있다. routes.php: url 라우팅을 위한 설정을 할 수 있다. git으로 주요 설정 파일 관리하기 config.php, database.php 파일은 DB 접속 정보 등 비밀 정보가 들어가기 때문에 여기서 해당 파일들은 중요 정보를 삭..

생활코딩 codeigniter - 2. 외부파일, Router, Helper, Library, Validation

1. 외부 static 파일 사용하기: 부트스트랩(bootstrap) 부트스트랩은 트위터에서 제공하는 css 프레임워크이다. 각종 요소들에 대해 미리 css 요소들을 적절하게 지정해놓은 것이라고 이해하면 된다. 부트스트랩 파일을 다운로드 받고 사용하면서 CI(CodeIgniter)에서 외부 파일을 사용하는 방법에 대해 학습한다. css 파일을 head 부분에 넣고, js 링크 파일을 body 태그 내부 맨 아래에 넣는다. 그리고 트위터 가이드에 따라서 class 이름들을 설정해주면 부트스트랩이 적용된다. 강의 내용과 예제 파일이 다르기 때문에 중요한 점들만 짚고 넘어간다. 예제 파일에 보면 assets/vendor 내부에 bootstrap.min.css, bootstrap.min.js 파일이 있다. 트위..

카테고리 없음 2024.04.05

생활코딩 php, codeigniter 강의 - 1. php 기본, codeigniter MVC(w/ Docker, MacOS)

1. php 문법자바와 비교해서 유의해야할 점이나 중요한 부분만 작성해놓는다. 공통자바와 똑같이 세미콜론으로 표현을 끝낸다. echo 또는 print 명령어로 출력한다. . 으로 string concatenation을 할 수 있다. 여러 줄 주석은 자바처럼 /* */ 로 처리할 수 있다. $로 변수를 초기화할 수 있다. 변수 사용도 $로 불러와서 사용한다. 함수들 var_dump: 타입 및 값 출력 isset: 변수의 null 확인 array("원소들", ...) 로 배열을 선언한다. scandir(): 특정 경로의 파일 목록을 배열로 불러온다. basename(): 디렉토리 중 파일의 이름만 따온다. 보안상 공격자가 디렉토리 탐색을 못하도록 막아줄 수 있다. 함수 함수는 코드의 복잡도를 낮추고 의미를 ..