-
iis rewrite
iis rewrite 설치 부분은 빼고 적어나가겠습니다. 참고 : https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Accessing_URL_Parts_from_a_Rewrite_Rule 위 참고를 보면 모두 알수 있다. url이 다음과 같다고 하자 http://www.google.com/search?q=IIS+url+rewrite 이것은 다음과 같이 자를수 있다. http(s)://:/? Server Variable로 각각의 값들을 가져올수 있다. 내용 값 메모 SERVER_PORT_SECURE or HTTPS = on/off http(s) 프로토콜 HTTP_HOST www.google.com 호스트명 /가 없다 SERVER_PORT Default is 80 URL(아래 그림에서 A 부분에서 사용) search/term /가 없는것을 주의한다. ?표 앞까지 나중에 룰을 만들때 /로 시작하게 하면 매칭이 안된다. PATH_INFO /search /가 있다...
-
Angular gtag
Angular 6 에서 구글 애널리틱스 연결하기 https://github.com/codediodeio/angular-gtag를 사용하자. angular-gtag를 설치하자. npm install angular-gtag –save index.html수정 send_page_view를 false로 세팅하자. <head> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-YOUR_TRACKING_ID"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-YOUR_TRACKING_ID', { 'send_page_view': false }); </script> </head> app.module.ts 수정 import { GtagModule } from 'angular-gtag'; @NgModule({ imports: [ GtagModule.forRoot({ trackingId: 'UA-YOUR_TRACKING_ID', trackPageviews: true, debug: true }) ] }) pageviews 보기 패키지가 라우트 변경을 자동으로 인식한다. 그러므로 다음처럼 하면된다. AppComponent.ts 를 수정한다....
-
Angular 6 i18n with SSR
Angular 6 i18n with SSR ng cli를 설치한다. npm install -g @angular/cli new project 생성 ng new i18n-sample --routing cd i18n-sample npm i ng serve -o //화면 잘 나오는지 확인 이건 ssr적용이 안된것이다. 기본 프로젝트가 실행됬다. 깃으로 파일 변경여부를 잘 확인 해가면서 보자. SSR 시 사용하는 패키지 설정 npm install --save @angular/platform-server @nguniversal/module-map-ngfactory-loader ts-loader @nguniversal/express-engine npm install --save-dev webpack-cli@2.0.14 SSR 적용 (aot포함)) ng generate universal --client-project i18n-sample npm i 기존에는 여러곳에 파일을 추가하고 수정해주여야 하였으나...
-
FCM - IOS Push Notification
Firebase 5.4 Push Notification For IOS 11 (feat. c# backend) 일단 제가 IOS를 처음 개발한다는 걸 알고 글을 봐주시기를 바랍니다. 혹시 틀린건 댓글 부탁드려요 전체 흐름을 미리 설명을 하면 다음과 같다. ios 개발 환경 구축 ios를 개발 시작하면 생소한 이름들로 부터 어려움에 처한다. 우리가 알아야할 것들은 다음과 같다. device(개발용) appId 인증서 (개발자, 배포용) identifier 프로비저닝 프로파일(개발용, 배포용) key 코드사이닝을 비롯하여 자세한 설명은 다른 블로그를 참고하기 바란다. 참고 http://beankhan.tistory.com/115 바로 실습에 들어가자 순서가 중요하므로 꼭 순서대로...
-
Entity Framework Core 2.1 - Tip
Entity Framework Core 2.1 - Tip 2.1부터 lazy loading이 지원된다고 해서 공부 급하게 공부하고 정리해서 틀릴수 있으니 꼭 다시 확인하기 바람. 용어 설명 그래프 : 연관관계가 있는 데이터들을 그래프라고하는것 같음. team 과 member에서 team A를 선택하면 관련된 팀원들이 쭉 붙는것 이것이 바로 그래프라고 하는듯. 영어강의를 듣다보면 자주 나와서.. N + 1 문제 : 1번 쿼리를 실행후 그 결과값으로 온 N 개의 데이터를 가져오기 위해 N번의 쿼리를 실행하는것을 말함. ef에서 로딩의 종류 Eager Loading (즉시 로딩)...
-
dotnet cli를 커스터마이즈하기
custom dotnet new 만들기 프로그램을 만들어주는 프로그램 만들기. dotnet new 해서 반복되는 코드를 자동으로 생성해서 프로젝트에 넣어주면 좋겠음. 반복 작업을 많이 줄일수 있음 기본 기능 템플릿 만들기 폴더 생성 mkdir -p C:\Users\<your-id>\Desktop\smiley-template cd C:\Users\<your-id>\Desktop\smiley-template aaa.cs를 생성 - 이 파일이 나중에 생성될 파일이다. mkdir -p C:\Users\<your-id>\Desktop\smiley-template\.template.config cd C:\Users\<your-id>\Desktop\smiley-template\.template.config 설정 파일 template.json 생성 { "$schema": "http://json.schemastore.org/template", "author": "Brian Kim", "classifications": [ "SmileyTemplate" ], "name": "Smmiley Template Sample", "identity": "Teamsmiley.template.sample.CSharp", "groupIdentity":"Teamsmiley.template", "preferNameDirectory":"true", "shortName": "smiley", // 이걸 사용해서 템플릿을...
-
정규식 OR AND 연산
정규식 팁 참고 ) 정규표현식은 표준인 POSIX의 정규표현식과 POSIX 정규표현식에서 확장된 Perl방식의 PCRE가 대표적이다. 여기서는 PCRE로 테스트함을 알려둔다. 오늘 있었던 정규식 관련 내용을 정리하려고 한다. 문제는 다음과 같다. 30008!30008!30007 => 참 30008!30007!30008 => 참 30007!30008!30008 => 참 30008!30007|30009 => 거짓 30007!30008!30008 => 참 30008!30008!30008 => 거짓 30007!30008 => 거짓 정규식으로 이걸 처리해야한다. 간단하게 설명하면 문자열에 30008 이 2개 이상 있고 30007도 1개 이상 있는경우만 참으로 되야한다. 기본적인 정규식을 생각해 봤더니 다음처럼 두개의 조건이 나온다. 조건...
-
Docker Tip 02
Docker Cron 크론작업을 도커로 이미지 올리고 해보자. 주의할점 cron은 포그라운드 모드로 돌려야한다. cron이 추가 설치해줘야한다. 환경변수를 잘 해야한다. 내가 실제로 크론으로 실행하고 싶은 파일이 python이므로 python 2.7 이미지로 시작한다. my-cron * * * * * root echo "Hello world" >> /var/log/cron.log Dockerfile FROM python:2.7-stretch MAINTAINER name "teamsmiley" <teamsmiley@gmail.com> RUN apt-get update RUN apt-get install cron -y RUN mkdir -p /data/LogImporter COPY LogImporter /data/LogImporter ADD my-cron /etc/cron.d/my-cron RUN chmod 0644 /etc/cron.d/my-cron CMD [ "cron","-f" ] docker...
-
Docker Tip 01
Docker 팁 정리 모든 컨테이너 삭제하기 docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) 모든 이미지 삭제하기 docker rmi $(docker images -q) Exit 상태의 모든 컨테이너 삭제하기 docker rm $(docker ps --filter 'status=exited' -a -q) 커맨드 내용까지 다 확인하자 docker ps -a --no-trunc 기존 네트워크에 새로 만든 컨테이너 넣기 docker network ls docker run -d --net network_name --name mongodb mongo docker network inspect network_name 도커의 모든 프로세스는 포그라운드로 돌려야한다. 기본적으로 도커는...
-
DDD START
DDD Start 책이 참 좋네요. 다들 사서 한번 읽어보세요 . http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788993827446&orderClick=LAG&Kc= domain driven design ‘온라인 서점’은 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인에 해당한다. 한 도메인은 다시 하위 도메인으로 나눌수 있다. 도메인 모델에는 다양한 정의가 존재하는데 기본적으로 도메인 모델은 특정 도메인을 개념적으로 표현한 것이다. 도메인에 따라 용어의 의미가 결정되므로 여러 하위 도메인을 하나의 다이어그램에 모델링 하면 안된다. 모델의 각 구성요서는 특정 도메인을 한정할때 비로소 의미가 완전해지기 때문에 각 하위 도메인마다 별도로 모델을 만들어야 한다. 도메인...