Programming-[Backend] (421) 썸네일형 리스트형 Mapstruct 기능 기록 uses, expression, @Named, qualifiedByName Mapstruct로 Mapping 할 때, 유용했던 기능에 대해서 정리한다. uses특정 객체 내부에 다른 객체가 list로 포함된 경우 uses를 사용해서 list 객체의 매핑을 자동으로 할 수 있다. //Mapper 내부에 uses로 사용@Mapper(componentModel = "spring", uses = {TaxPoToTaxDtoMapper.class})public interface GoodsPoToGoodsDtoMapper extends BasePoDtoMapper { GoodsDto copy(GoodsPo source);}// GoodsPo: List가 포함되어 있다public class GoodsPo extends BasePoAbstract { private String id;.. [경험 요약] 자바 테스트 객체 자동으로 만들기: Instancio 라이브러리 오랜만에 자바-스프링 프로젝트를 진행하면서 테스트 케이스상 필요한 given 객체들을 만들어내야하는데, 각 속성값들을 직접 다 지정해줘야하는게 너무 불편했다. 파이썬-장고 계열에서는 Model Bakery를 사용했었는데, 자바에서는 그런 라이브러리를 사용한 기억이 없어서 라이브러리를 찾아보기로 했다! Instanciohttps://mvnrepository.com/artifact/org.instancio/instancio-junit instancio를 maven repository에서 import 해와서 build.gradle에 포함시켰다. 간단한 사용법은 예시는 아래와 같다. user-guide를 5~10분만 보면 바로 어떤 건지 알 수 있다.https://www.instancio.org/user-gu.. [경험 요약] Atomikos multi-database transaction 묶기 https://wildeveloperetrain.tistory.com/332 Atomikos를 통한 Multi Datasource Transaction 처리 (전역 트랜잭션)스프링 부트 다중 데이터베이스 트랜잭션 처리 (jta-atomikos) 해당 포스팅은 스프링부트 환경에서 다중 데이터베이스를 연결할 때 'multi datasource에 대한 트랜잭션 처리'에 대해 정리한 내용입니다.wildeveloperetrain.tistory.com 위 링크가 정리가 잘 된 것 같다. 실무를 해보면서 유의해야할 점들을 저장해놓는다. 1. application.yml에서 hibernate 설정이 잘 안될 수 있다.- 따로 Datasource config를 위한 Bean들을 만들어서 Config에서 설정 내용을 주입.. 생활코딩 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 접속 정보 등 비밀 정보가 들어가기 때문에 여기서 해당 파일들은 중요 정보를 삭.. 생활코딩 php, codeigniter 강의 - 1. php 기본, codeigniter MVC(w/ Docker, MacOS) 1. php 문법자바와 비교해서 유의해야할 점이나 중요한 부분만 작성해놓는다. 공통자바와 똑같이 세미콜론으로 표현을 끝낸다. echo 또는 print 명령어로 출력한다. . 으로 string concatenation을 할 수 있다. 여러 줄 주석은 자바처럼 /* */ 로 처리할 수 있다. $로 변수를 초기화할 수 있다. 변수 사용도 $로 불러와서 사용한다. 함수들 var_dump: 타입 및 값 출력 isset: 변수의 null 확인 array("원소들", ...) 로 배열을 선언한다. scandir(): 특정 경로의 파일 목록을 배열로 불러온다. basename(): 디렉토리 중 파일의 이름만 따온다. 보안상 공격자가 디렉토리 탐색을 못하도록 막아줄 수 있다. 함수 함수는 코드의 복잡도를 낮추고 의미를 .. Django로 프로젝트 세팅 with DRF, mysql, viewSet, pyTest 1. 프로젝트 생성, DB 연결 python 3.12.2, pyCharm을 통해서 프로젝트 생성 pip install poetry poetry init poetry add djangorestframework poetry add django-environ .env 파일을 만든다. SECRET_KEY와 DB 정보 등을 .env에 숨긴다. SECRET_KEY=.. DB_NAME=. DB_PORT=. DB_USER=. DB_PASSWORD=. DB_HOST=. settings.py에 아래처럼 설정한다. __file__은 코드가 작성된 현재 파일을 의미한다. os.path.abspath로 절대경로를 가져온 뒤, os.path.dirname으로 상위 경로의 디렉토리 이름을 BASE_DIR로 잡는다. BASE_DIR.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 53 다음