날자별

6월 2017
« 2월    
 1234
567891011
12131415161718
19202122232425
2627282930  

[IIS7] web.config에서 HttpModules, HttpHandlers 사용 시 오류 처리

문제

IIS 7에서 아래 그림과 같은 HttpModules 또는 HttpHandlers와 관련된 오류메시지가 나타나지 않으셨습니까?

이는 다음 코드와 같이 <httpModule> 또는 <HttpHandlers>를 사용하여 발생했을 가능성이 높습니다. IIS 6, 이전 버전, VisualStudio 상에서는 정상 동작하지만, IIS7의 경우에는 <system.web>아래 <httpModules> 또는 <httpHandlers>를 포함할 경우 Exception이 발생합니다.

1 <system.web>
2   <httpModules>
3      <add name="testClass" type="Test.TestClass,test" />
4   </httpModules>
5 </system.web>

해결

<system.web> 아래에 <system.webServer>를 추가하고 하위 항목으로 <modules> 또는 <handlers>를 추가합니다. 그리고 동일한 <add> 항목을 하위에 추가하시면 됩니다. 마지막으로 <system.web> 하위의 <httpModules> 또는 <httpHandlers>를 삭제합니다.

01 <system.web>
02   <!--
03   <httpModules>
04      <add name="testClass" type="Test.TestClass,test" />
05   </httpModules>
06   -->
07 </system.web>
08 <system.webServer>
09   <validation validateIntegratedModeConfiguration="false"/>
10   <modules>
11     <!--add name="ModuleName" type="ClassName,AssemblyName" -->
12     <add name="testClass" type="Test.TestClass,test" />
13   </modules>
14 </system.webServer>

참조 사이트

출처: http://nsinc.tistory.com/53 [NakedStrength Inc.]

git cleanup 명령

untracked 파일 제거
> git clean -fdx

워킹트리 원복
> git reset --hard HEAD : 워킹트리 전체를 마지막 커밋 상태로 되돌림. 마지막 커밋 이후 워킹 트리와 수정 사항 모두 사라짐
> git checkout HEAD . : 워킹트리의 모든 수정된 파일의 내용을 HEAD로 원복

* 참조 : reset 옵션
–soft : index 보존, 워킹트리 보존. 즉 모두 보존.
–mixed : index 취소, 워킹트리만 보존 (기본 옵션)
–hard : index 취소, 워킹트리 취소. 즉 모두 취소.

mac 에서 사용하고 있는 프로그램 목록

 

  • 구입목록에 있는 프로그램들 전부 설치 및 업데이트
    • SnailSVN
    • 무비스트
    • 카카오톡
    • 네이트온
    • Microsoft Remote Desktop
    • Microsoft OneNote
    • OneDrive
  • 각 홈페이지 가서 설치해야 하는 프로그램
    • Chat for Facebook 설치
    • Telegram 설치
    • Band 설치
    • Chrome 설치
    • Ridi Books 설치
    • Filezilla 설치
    • Near Lock 설치
    • Synergy 설치
    • Ubersicht 설치
    • Duet 설치
    • Clean Memory 설치
    • TunnelBlick 설치
    • Parallels 11 설치 <- 12는 아직 불안정
      • Windows 10 + VisualStudio 2017
  • XCode 설치 및 Command Line tools 설치
    • Xcode 설치
    • Command Line tools 설치

Mac Brew로 패키지 관리

Brew 명령어

  • brew search formula // 패키지 검
  • brew install formula // 패키지 설치
  • brew remove formula // 패키지 삭제
  • brew info formula // 패키지 정보
  • brew switch formula 2.1.1 // 특정 버전으로 변경
  • brew upgrade [formula] // 설치한 패키지의 최신버전을 설치
  • brew list 또는 brew ls // 설치한 formula 목록
  • brew update // Homebrew 업데이트
  • brew doctor // 시스템에 문제가 있는지 확인
  • brew outdated // 내가 설치한 formula 목록의 이후 버전이 나왔는지 확인
  • brew cleanup // fomula 의 모든 과거버전을 제거함
  • brew linkapps formula // 링크 만들기
  • brew unlink formula

Xcode 설치

  • Xcode 설치

Command line tool 설치

  • xcode-select –install
  • Xcodebuild -license

HomeBrew 설치

  • /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
  • brew tap caskroom/cask
  • brew tap caskroom/versions
  • brew tap caskroom/fonts
  • brew tap homebrew/dupes

Iterm2 설치

  • brew cask install iterm2

Tmux 설치

  • brew install tmux
  • brew install reattach-to-user-namespace

GNU tools 설치

  • brew install gnu-sed –with-default-names
  • brew install gnu-tar –with-default-names
  • brew install gnutls –with-default-names
  • brew install grep –with-default-names
  • brew install coreutils
  • brew install binutils
  • brew install diffutils
  • brew install gzip
  • brew install watch
  • brew install tmux
  • brew install wget
  • brew install nmap
  • brew install gpg
  • brew install htop
  • brew install macvim –with-override-system-vim
  • brew linkapps macvim

JAVA 설치

  • brew cask install java
  • brew install git

Font 설치

  • brew cask install font-d2coding

파이썬

  • brew install pyenv

mybatis.net 자료형

CLR Type Object/Map Property Mapping Result Class/Parameter Class** Type Alias**
System.ArrayList Yes Yes list
System.Boolean Yes Yes Boolean, bool
System.Byte Yes Yes Byte, byte
System.Char Yes Yes Char, char
System.DateTime Yes Yes dateTime, date
System.Decimal Yes Yes Decimal, decimal
System.Double Yes Yes Double, double
System.Guid Yes Yes guid
System.Hashtable Yes Yes map, hashmap, hashtable
System.Int16 Yes Yes Int16, short, Short
System.Int32 Yes Yes Int32, int, Int, integer, Integer
System.Int64 Yes Yes Int64, long, Long
System.SByte Yes Yes SByte, sbyte
System.Single Yes Yes Float, float, Single, single
System.String Yes Yes String, string
System.TimeSpan Yes Yes N/A
System.UInt16 Yes Yes Short, short
System.UInt32 Yes Yes Uint, uint
System.UInt64 Yes Yes Ulong, ulong

 

CLR Type iBatis support SqlDbType OleDbType OdbcType OracleType
Byte[] Yes Binary, Image, VarBinary Binary, VarBinary Binary, Image, VarBinary Raw
Boolean Yes Bit Boolean Bit Byte
Byte TinyInt TinyInt Byte
DateTime Yes DateTime, SmallDateTime Date Date, DateTime, SmallDateTime, Time DateTime
char Yes Not supported Char Char Byte
Decimal Yes Decimal, Money, SmallMoney Decimal, Currency, Numeric Decimal, Numeric Number
Double Yes Float Double Double Double
Guid Yes UniqueIdentifier Guid UniqueIdentifier Raw
Int16 Yes SmallInt SmallIInt SmallInt Int16
Int32 Yes Int Integer Int Int32
Int64 Yes BigInt BigInt BigInt Number
Single Yes Real Single Real Float
String Yes Char, Nchar, NVarchar, Text, VarChar Char, VarChar Char, NChar, NText, NVarChar, Text, VarChar NVarChar
TimeSpan No Not supported DBTime Time DateTime
UInt16 yes Int UInt16
UInt32 yes Decimal UInt32
UInt64 yes Decimal Number

mac os > paralles > visualstudio > xamarin > android emulator 설정

parallels 설정 > 하드웨어 > CPU 및 메모리 > 고급설정 > 중첩 가상화 사용 체크

그러나…ㅠ,.ㅠ

windows 속도가 너무 느려져서……….평소에는 쓰지 못하겠다.

MySQL 튜닝 (from 나프다)

먼저

  1. Subscription을 받아라
  2. 기술지원 업체에게 의지해라
  3. HW 의 중요성
    mysql community < mysql enterprize 쓰레드풀이 있고 없고 차이 (12 core 이상에서 성능 차이) -> maria DB는 쓰레드풀이 존재
  4. 스토리지 엔진이 따로 있다.
  5. my.cnf 를 잘 써라
    default로 있는 것은 낮은 시스템에서 돌리게끔 되어 있는 것이다.
  6. 성능 한계가 있다.
  7. BMT 수치는 맹신하지 마라

튜닝

아르노 Adant MySQL Connect 2013 발표
http://aadant.com/blog/wp-content/uploads/2013/09/50-Tips-for-Boosting-MySQL-Performance-CON2655.pdf

  1. Make sour you have enough RAM
  2. Use fast and multi-core processors
  3. Use fast and reliable storage
  4. Choose the right OS
    • MySQL is excellent on Linux
    • WIndows need 2012 R2
  5. Adjust the OS limits
    • Max open files per process
    • Max threads per user
  6. Consider using alternative malloc
    • [mysqld_safe]
      malloc-lib=/usr/lib64/libjemalloc.so.1
    • [mysqld_safe]
      malloc-lib=tcmalloc
  7. Set CPI affinity
    • taskset command on linux
      taskset -c 1-4 ‘pidof mysqld’
    • On Windows
      START /AFFINITY 0x1111 bin\mysqld -console
  8. Choose the right file system
    • xfs is excellent > ext4 > ext3
  9. Mount options
    • ext4 (rw,noatime, nodiration, nobarrier, data=ordered)
    • xfs (rw, noatime, nodiratime, nobarrier, logbufs=8, logbsize=32k)
    • SSD specific
      • trim
      • innodb_page_size = 4k
      • innodb_flush_neighbors = 0
  10. Choose the best I/O scheduler (Use deadline or noop on Linux)
    • deadline is generally the best I/O scheduler
      echo deadline > /sys/block/{DEVICE-NAME}/queue/scheduler
    • the best value is HW and WL specific
      noop on high end controller
  11. Use a battery backed disk cache
  12. Balance the load on several disks (SSD)
  13. Turn Off the Query Cache
    • query_cache_type = 0
    • query_cache_size = 0
    • qcache_free_blocks > 5-10k
  14. Use the Thread Pool
  15. Configure table caching
    • table_open_cache
      • not too small, not too big, used to size PS
      • opened_tables / sec
    • table_definition_cache
      • do not forget to increase
      • opened_table_definitions / sec
    • table_cache_instances = 8 or 16
    • innodb_open_files
    • mdl_hash_instances = 256
  16. Cache the threads
    • thread_cache_size
  17. Reduce per thread memory usage
    • Memory allocation is expensive = max_used_connections *(
      read_buffer_size +
      read_rnd_buffer_size +
      join_buffer_size +
      sort_buffer_size +
      binlog_cache_size +
      thread_stack +
      2 * net_buffer_length…
      )
  18. Beware of sync_binlog = 1
  19. Move your tables to InnoDB
  20. Use a large buffer pool (80% buffer pool)
    • innodb_buffer_pool_size
    • Do not swap !
  21. Reduce the buffer pool contention
    • 테이블이 많으면 많을수록 버퍼풀이 큰게 좋다
  22. Use large redo logs
    • 버전 5.6 이상에서는 2기가 이상 사용이 가능하다
  23. Adjust the IO capacity
    • 5200 RPM 에서 만들어진 기능으로 그다지…
    • 디폴트 값이 너무 낮긴 하지만 성능 향상에 그렇게까지큰 도움이 되지는 않는다.
  24. Configure the InnoDB flushing
    • 커밋할때 로그를 플러쉬 어떻게 할것인가?
    • 안정성을 중요시하면 1
    • 엔간하면 2로 놔도…
    • innodb_flush_method = O_DIRECT // 커널 복사 비용 없이 DMA를 사용 가끔 linux 커널 버전이 이상해서 파일 시스템에서 Direct IO가 켜져있지 않은 경우 골때릴수는 있다. 윈도우는 옵션이 다르다
  25. Enable innodb_file_per_table
    • 5.6부터 디폴트 이므로…
  26. Configure the thread concurrency
    • 디폴트로 놔도 됨
  27. Reduce the transaction isolation
  28. Design the tables
    • latin1 -> utf-8
    • primary key -> int
  29. Add indexes
    • innodb 는 data와 index가 같은 파일 안에 들어가서 무조건 많이 잡는게 꼭 좋아지지는 않는다.
  30. Remove unused indexes
    • 안쓰는 인덱스는 삭제하자
  31. Reduce rows_examined
    • 쿼리 쓸때 자료 확인하는 데이터 수를 줄이는 것은 당연
  32. Reduce rows_sent
    • 쿼리 쓸때 select 해서 가져오는 자료 갯수 줄이는 것도 당연
  33. Reduce locking
    • lock을 줄이는 것도 당연
    • 특히 mysql은 auto commit 이 디폴트인데 이걸 쓰지 않도록…
  34. Mine the slow query log
    • 슬로우 쿼리 잡는 것도 당연
  35. Use the performance_schema
    • 퍼포먼스 툴을 잘 사용해야 한다
    • 퍼포먼스 툴을 사용하는 시점에 10% 의 성능 하향이 일어난다.
    • 버전 8정도부터는 그렇게 성능의 하향이 일어나지는 않는다
  36. Tune the replication thread
    • 알려진 버그가 좀 있어서…
    • 만약 사용하려면 binlog_format=ROW 옵션이 필요하다
  37. Avoid temporary tables on disk
    • mysql은 join을 하거나 할때 용량이 크면 temp table을 다 disk에다 쓴다.
    • temp table을 ram에 올려야 한다.
    • temp file system을 사용하더라도 너무 크게 잡으로 swap을 사용하기 때문에
  38. Cache data in the App
  39. Avoid long running transactions
  40. Close idle connections
    • 가능하면 클라이언트에서 timeout을 사용해서 어느정도 시간이 지나면 저절로 끊어지게 해라
  41. Close prepare statements
    • prepare 하고 제발좀 close 해라
  42. Configure Connector / J
    • JDBC Connector 인데 굳이 JDBC를 사용할일은 없으니까
    • mysql connector 와 maria connector등을 같이 쓰지 말고 제발 제대로 된 프로그램을 써라
  43. Do not use the information_schema in your App
  44. View are not good for performance
  45. Sacle out, shard
  46. Monitor the database and OS
  47. Backup the database
  48. Optimize table and data files
    • 주기적으로 해야 하는 게 맞다
    • 라이브서버에서는 하지 마라
  49. Upgrade regularly
  50. Perform regular health checks

utorrent 광고 제거

강조 표시된 부분만 변경하여도 광고는 제거되지만 모두 변경할 것을 권장한다. 해당 값을 모두 ‘false’로 변경한다.

bt.enable_pulse
distributed_share.enable
offers.content_offer_autoexec
offers.featured_content_badge_enabled
offers.featured_content_notifications_enabled
offers.featured_content_rss_enabled
offers.sponsored_torrent_offer_enabled 상단 광고를 제거한다.
offers.left_rail_offer_enabled 좌측 광고 제거를 제거한다.
gui.show_plus_upsell 좌측 광고를 제거하면 나타나는 PRO 광고를 제거한다.
gui.show_notorrents_node 토렌트가 없을 때 목록에 뜨는 PRO 광고를 제거한다.

숨겨진 설정

Shift + F2 단축키를 누른 상태에서 ‘옵션’ – ‘설정’ – ‘고급 설정’을 클릭한다. 마찬가지로 해당 값을 모두 ‘false’로 변경한다.

gui.show_gate_notify
gui.show_plus_av_upsell
gui.show_plus_conv_upsell
gui.show_plus_upsell_nodes ‘Upgrade to Pro’ 항목을 제거한다. (버전에 따라 재시작 후 사라지지 않는 현상이 있다.)

sql 스크립트 생성시에 옵션

스크린샷 2016-07-27 오후 3.22.20

윈도우용 gvim에서 find in files 하기

[code] : grep -i-s “string” –include “*.php” [/code]

C:\Program Files (x86)\Microsoft Visual Studio 14.0>findstr /?
파일에서 문자열을 찾습니다.

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:파일][/C:문자열] [/G:파일] [/D:디렉터리 목록] [/A:색 속성] [/OFF[LINE]]
문자열 [[드라이브:][경로]파일이름[ …]]

/B 패턴이 행의 첫 부분에 있는지를 비교합니다.
/E 패턴이 행의 끝부분에 있는지를 비교합니다.
/L 찾는 문자열을 글자 그대로 사용합니다.
/R 찾는 문자열을 정규식으로 사용합니다.
/S 현재 디렉터리와 모든 하위 디렉터리에서 일치하는 파일을 찾습니다.
/I 찾을 때 대/소문자를 구별하지 않습니다.
/X 정확히 일치하는 줄만 보여줍니다.
/V 일치하는 텍스트가 없는 줄만 보여줍니다.
/N 일치하는 각 줄 앞에 줄 번호를 보여줍니다.
/M 파일에 일치하는 텍스트가 있으면 파일 이름만 보여줍니다.
/O 일치하는 각 줄 앞에 문자 오프셋을 보여줍니다.
/P 인쇄할 수 없는 텍스트가 포함된 파일은 건너뜁니다.
/OFF[LINE] 오프라인 속성 세트 파일을 건너뛰지 않습니다.
/A:속성 색 속성을 두 자리 16진수로 지정합니다. “color /?”를 참조하십시오.
/F:파일 지정된 파일에서 파일 목록을 읽습니다(‘/’는 콘솔에 해당됩니다).
/C:문자열 지정된 텍스트를 글자 그대로 찾는 문자열로 사용합니다.
/G:파일 지정된 파일로부터 찾는 텍스트를 받습니다(‘/’는 콘솔에 해당됩니다).
/D:디렉터리 디렉터리 목록을 구분하는 세미콜론(;)를 찾습니다.
문자열 찾을 텍스트.
[드라이브:][경로]파일이름
찾을 파일을 지정합니다.

/C 옵션을 사용한 경우가 아니면, 찾는 문자열을 여러 개 지정할 때
공백으로 분리하십시오. 예를 들면, ‘FINDSTR “hello there” x.y’ 명령을
입력하면 파일 x.y에서 “hello”나 “there”을 찾습니다.
반면에 ‘FINDSTR /C:”hello there” x.y’ 명령을 입력하면 파일 x.y에서
“hello there”을 찾습니다.

정규식에 대한 참고 사항:
. 와일드카드: 모든 문자
* 반복: 문자나 클래스에 대하여 0번 이상 반복
^ 행 위치: 행의 앞부분
$ 행 위치: 행의 끝부분
[클래스] 문자 클래스: 세트에 있는 문자
[^클래스] 역 클래스: 세트에 없는 문자
[x-y] 범위: 특정 범위에 있는 문자
\x 이스케이프: 메타 문자 x를 문자 그대로 사용
\<xyz 단어 위치: 단어의 앞부분
xyz\> 단어 위치: 단어의 끝부분

Findstr에서 사용 가능한 정규식은 온라인 명령을 참조하십시오.