전체 글 (19) 썸네일형 리스트형 Mysql - LATERAL JOIN 문제 Table_A - Table_B 가 OneToMany 관계를 가진 상태였고, Table_A 의 각 row별로 Table_B의 데이터가 필요한 상황이었다. Table_A의 각 row별로 Table_B의 가장최신 데이터를 3개씩 가져오는것이 목표였다. 즉 대충 구조를 그리면 다음과 같은 상황이었다. table_a_row1 table_b_data1 table_b_data2 table_b_data3 table_a_row2 table_b_data4 table_b_data5 table_b_data6 table_a_row3 table_b_data7 table_b_data8 table_b_data9 table_a_row4 table_b_data10 table_b_data11 table_b_data12 LeftJo.. nestjs - leftJoinAndMapOne 문제 leftjoin을 사용하는데 relation table의 데이터를 특정 조건에 만족하는 데이터를 추출하고 추출한 데이터를 컬럼명을 변경해서 추가하고 싶었음 해결 leftJoinAndMapOne을 사용해서 해결했다. const qb = this.repo .createQueryBuilder('tableA') // 사용부분 .leftJoinAndMapOne( 'tableA.willBeName', 'tableA.originName', 'columnAlias', 'columnAlias.id = :id', {id: 1} ) const data = await qb.getOne() leftJoinAndMapOne의 첫번째 인자값으론 사용하고싶은 컬럼명을 입력하고 두번째 인자값엔 원래 relation 정의된 이름을.. CSS selector 응용 - :not(), :last-child 간혹 퍼블리싱 작업할 때 다음과 같은 상황이 자주 발생한다. * HTML 메뉴1 메뉴2 메뉴3 메뉴4 메뉴5 메뉴6 * CSS li { margin-bottom: 1em; } li:last-child { margin-bottom: 0; } 대충 어떤상황인지 경험해본사람들은 알겠지만, li요소에 margin-bottom을 1em씩 주지만 마지막 li엔 margin-bottom을 적용하지 않게 해주는 상황이다. 임시로 만든 상황이라 margin-bottom이 사용되었지만 비슷한 경우가 많을것이다. 이때 :not()을 사용하면 조금이지만 코드를 줄일 수 있다. * CSS li:not(:last-child) { margin-bottom: 1em; } nestjs - Role Guard 구현 nestjs를 사용하면서 회원의 Role을 기준으로 api를 제공하는 로직을 구현했다. role guard 구현은 공식 홈페이지에도 예제가 있지만 내가 필요로 하는 guard의 형태는 다음과 같았다. 1. Controller 전체에 적용되는 Guard 2. Api에 Role을 명시할 경우, 명시된 Role을 기준으로 검사를 하는 Guard 한마디로 Controller 전체에 기본적인 Role을 지정해놓고, 특정 Api에서는 다른 기준의 Role을 적용시키고 싶었다. 구글링 결과 내가 원하는 Guard는 mixin 함수를 통해 구현이 가능했다. 1. mixin을 통한 Guard 구현 위의 코드를 RoleGuard 함수 안에 RoleGuardMixin이라는 클래스를 만들어서 mixin함수를 통해 Guard를.. [html] textarea 에 맞춤법 표시 없애기 문제 textarea를 사용하다 보면 위의 이미지처럼 빨간 점선으로 맞춤법 검사 표시가 나타난다. 아무래도 맞춤법을 교정해주는 서비스가 아니다 보니 불필요하고 보기에도 안좋아서 빨간 점선을 없앨 방법을 알고싶었다. 해결 textarea 의 spellcheck 속성을 꺼주면 된다. ionic5 - dark theme 적용풀기 문제 앱 기본 테마를 가지고 작업을 했는데, 사용자 설정에 따라서 앱의 테마가 light, dark 로 자동 적용되 있었다. dark 테마로 자동전환 되는걸 막고싶었다. 해결 src-theme-variables.scss 파일에서 다음 항목을 찾고 모두 주석처리 해준다. // @media (prefers-color-scheme: dark) { // /* // * Dark Colors // * ------------------------------------------- // */ // body { // --ion-color-primary: #428cff; // --ion-color-primary-rgb: 66,140,255; // --ion-color-primary-contrast: #ffffff; // .. typeorm - relations cascade 문제 테이블이 테이블1-테이블2-테이블3 형태로 된 상태에서 테이블1, 테이블2, 테이블3 의 정보를 leftjoin 해야하는 상황 해결 - querybuilder 사용 tableA - tableB3 - tableC 의 정보가 필요할 경우 아래와 같이 leftJoin을 사용해준다. const qb = this.studyRepository .createQueryBuilder('tableA') .leftJoinAndSelect('tableA.tableB1', 'tableB1') .leftJoinAndSelect('tableA.tableB2', 'tableB2') .leftJoinAndSelect('tableA.tableB3', 'tableB3', ) .leftJoinAndSelect('tableA.table.. AWS ECS 구성 서론 Codepipeline을 통해 자동배포를 구현하려면 먼저 ECS가 구성되어 있어야 한다. 여기선 ECS의 클러스터, 작업, 서비스 설정을 다뤄보려 한다. 사전작업 -- 키 페어 생성 EC2 인스턴스를 띄우고 인스턴스에 ssh접속할 경우 Key pair를 통해 접속 가능하게 설정할 것이기 때문에 Key pair를 발급해보자. EC2 - 네트워크 및 보안 - 키 페어 항목으로 들어가보면 다음과 같은 화면을 볼 수 있다. 우상단의 키 페어 생성 버튼을 누르고 키 페어 생성 화면으로 이동하자. 키 페어 이름입력 후 키 페어 생성 버튼을 누르면 자동으로 파일이 다운로드 되며 키 페어 목록 화면으로 이동된다. -- ACM 인증서 발급 Load Balancer를 생성할 때 ACM 인증서가 필요하기 때문에, 먼저.. 이전 1 2 3 다음