$ sudo vi /etc/apt/apt.conf


-파일이 없을 경우 새로 생성하자.

- 아래 내용을 추가 

- :wq로 저장 


Acquire::http::proxy "http://adress:port/";


$ sudo apt-get update

$ sudo apt-get upgrade


- 정상적으로 진행되는 것을 확인해 보자

블로그 이미지

레몬도리 LemonDory

개발자의 이야기


mongodb collection을 protobuf class로 가져오려고 하던 중에 List 형태를 가져와보려고 많은 시간을 소비해 가며 보던 중에 .proto로 gen할 때 자세히 보니 repeated 값들이 readonly로 생성 되는 것을 보았다.


여기 저기 검색하던 중에 protobuf를 본 외국인의 글을 발견했다.(질문자는 다른 방법이 필요했던 거였지만 아래 더 자세한 설명을 해준 답변자의 답변이 눈에 들어왔다)

링크 : https://stackoverflow.com/questions/16617933/protobuf-net-generated-class-from-proto-is-repeated-field-supposed-to-be-re


This was a new issue for us as well after updating our proto-net executable and related files. It was new behavior we hadn't experienced before.

After a little digging in csharp.xslt, we found the definition for 'repeated' fields:

<xsl:template match="FieldDescriptorProto[label='LABEL_REPEATED']">
    <xsl:variable name="type"><xsl:apply-templates select="." mode="type"/></xsl:variable>
    <xsl:variable name="format"><xsl:apply-templates select="." mode="format"/></xsl:variable>
    <xsl:variable name="field"><xsl:apply-templates select="." mode="field"/></xsl:variable>
    private <xsl:if test="not($optionXml)">readonly</xsl:if> global::System.Collections.Generic.List&lt;<xsl:value-of select="$type" />&gt; <xsl:value-of select="$field"/> = new global::System.Collections.Generic.List&lt;<xsl:value-of select="$type"/>&gt;();
    [<xsl:apply-templates select="." mode="checkDeprecated"/>global::ProtoBuf.ProtoMember(<xsl:value-of select="number"/>, Name=@"<xsl:value-of select="name"/>", DataFormat = global::ProtoBuf.DataFormat.<xsl:value-of select="$format"/><xsl:if test="options/packed='true'">, Options = global::ProtoBuf.MemberSerializationOptions.Packed</xsl:if>)]<!--
    --><xsl:if test="$optionDataContract">
    [global::System.Runtime.Serialization.DataMember(Name=@"<xsl:value-of select="name"/>", Order = <xsl:value-of select="number"/>, IsRequired = false)]
    </xsl:if><xsl:if test="$optionXml">
    [global::System.Xml.Serialization.XmlElement(@"<xsl:value-of select="name"/>", Order = <xsl:value-of select="number"/>)]
    </xsl:if>
    public global::System.Collections.Generic.List&lt;<xsl:value-of select="$type" />&gt; <xsl:call-template name="pascal"/>
    {
      get { return <xsl:value-of select="$field"/>; }<!--
      --><xsl:if test="$optionXml">
      set { <xsl:value-of select="$field"/> = value; }</xsl:if>
    }
  </xsl:template>

I've pulled out the specific parts for the private field and the setter:

private <xsl:if test="not($optionXml)">readonly</xsl:if> ...snip...

public ...snip...
{
  ...snip... 
  <!----><xsl:if test="$optionXml">
  set { <xsl:value-of select="$field"/> = value; }
  </xsl:if>
}

Notice the suspect conditions above for $optionXml. If you just remove those, the field is no longer readonly and the setter is properly generated.

So it then becomes: private ...snip...

public ...snip...
{
  ...snip... 
  set { <xsl:value-of select="$field"/> = value; }
}

Full 'fixed' template:

  <xsl:template match="FieldDescriptorProto[label='LABEL_REPEATED']">
    <xsl:variable name="type"><xsl:apply-templates select="." mode="type"/></xsl:variable>
    <xsl:variable name="format"><xsl:apply-templates select="." mode="format"/></xsl:variable>
    <xsl:variable name="field"><xsl:apply-templates select="." mode="field"/></xsl:variable>
    private global::System.Collections.Generic.List&lt;<xsl:value-of select="$type" />&gt; <xsl:value-of select="$field"/> = new global::System.Collections.Generic.List&lt;<xsl:value-of select="$type"/>&gt;();
    [<xsl:apply-templates select="." mode="checkDeprecated"/>global::ProtoBuf.ProtoMember(<xsl:value-of select="number"/>, Name=@"<xsl:value-of select="name"/>", DataFormat = global::ProtoBuf.DataFormat.<xsl:value-of select="$format"/><xsl:if test="options/packed='true'">, Options = global::ProtoBuf.MemberSerializationOptions.Packed</xsl:if>)]<!--
    --><xsl:if test="$optionDataContract">
    [global::System.Runtime.Serialization.DataMember(Name=@"<xsl:value-of select="name"/>", Order = <xsl:value-of select="number"/>, IsRequired = false)]
    </xsl:if><xsl:if test="$optionXml">
    [global::System.Xml.Serialization.XmlElement(@"<xsl:value-of select="name"/>", Order = <xsl:value-of select="number"/>)]
    </xsl:if>
    public global::System.Collections.Generic.List&lt;<xsl:value-of select="$type" />&gt; <xsl:call-template name="pascal"/>
    {
      get { return <xsl:value-of select="$field"/>; }
      set { <xsl:value-of select="$field"/> = value; }
    }
  </xsl:template>

I played with setting optionXml to false, but it didn't work and you may still want that option enabled anyway.


위와 마지막 fixed template을 보고 protogen.exe 폴더에 있는 csharp.xslt의 내용을 수정하면 될 것이다.

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

https://www.fun25.co.kr/blog/ubuntu-16-04-mysql-server-install/

OS: Ubuntu 16.04

# apt-get update
# apt-get install mysql-server

MySQL 서버의 root 계정의 암호를 설정한다. 이 암호는 설치 후 반드시 필요하니 꼭 메모해 두도록 한다.

enter image description here

설치시에 나오는 메시지이다.

패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
The following additional packages will be installed:
  apparmor libaio1 libapparmor-perl libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.0-5 libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libnuma1 libtimedate-perl liburi-perl mysql-client-5.7 mysql-client-core-5.7 mysql-common
  mysql-server-5.7 mysql-server-core-5.7 psmisc
제안하는 패키지:
  apparmor-profiles apparmor-profiles-extra apparmor-docs apparmor-utils libdata-dump-perl libipc-sharedcache-perl libwww-perl
  mailx tinyca
다음 새 패키지를 설치할 것입니다:
  apparmor libaio1 libapparmor-perl libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.0-5 libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libnuma1 libtimedate-perl liburi-perl mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server
  mysql-server-5.7 mysql-server-core-5.7 psmisc
0개 업그레이드, 25개 새로 설치, 0개 제거 및 74개 업그레이드 안 함.
19.5 M바이트 아카이브를 받아야 합니다.
이 작업 후 165 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] 
받기:1 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 mysql-common all 5.7.17-0ubuntu0.16.04.2 [15.7 kB]
받기:2 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 libapparmor-perl amd64 2.10.95-0ubuntu2.6 [31.4 kB]
받기:3 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 apparmor amd64 2.10.95-0ubuntu2.6 [450 kB]
받기:4 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6,356 B]
받기:5 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libnuma1 amd64 2.0.11-1ubuntu1 [21.0 kB]
받기:6 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 mysql-client-core-5.7 amd64 5.7.17-0ubuntu0.16.04.2 [6,516 kB]
받기:7 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 mysql-client-5.7 amd64 5.7.17-0ubuntu0.16.04.2 [1,666 kB]
받기:8 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 mysql-server-core-5.7 amd64 5.7.17-0ubuntu0.16.04.2 [7,564 kB]
받기:9 http://ftp.daumkakao.com/ubuntu xenial/main amd64 psmisc amd64 22.21-2.1build1 [48.0 kB]
받기:10 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 libevent-core-2.0-5 amd64 2.0.21-stable-2ubuntu0.16.04.1 [70.6 kB]
받기:11 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 mysql-server-5.7 amd64 5.7.17-0ubuntu0.16.04.2 [2,466 kB]
받기:12 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libhtml-tagset-perl all 3.20-2 [13.5 kB]
받기:13 http://ftp.daumkakao.com/ubuntu xenial/main amd64 liburi-perl all 1.71-1 [76.9 kB]
받기:14 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libhtml-parser-perl amd64 3.72-1 [86.1 kB]
받기:15 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libcgi-pm-perl all 4.26-1 [185 kB]
받기:16 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libfcgi-perl amd64 0.77-1build1 [32.3 kB]
받기:17 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libcgi-fast-perl all 1:2.10-1 [10.2 kB]
받기:18 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libencode-locale-perl all 1.05-1 [12.3 kB]
받기:19 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libhtml-template-perl all 2.95-2 [60.4 kB]
받기:20 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libtimedate-perl all 2.3000-2 [37.5 kB]
받기:21 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libhttp-date-perl all 6.02-1 [10.4 kB]
받기:22 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libio-html-perl all 1.001-1 [14.9 kB]
받기:23 http://ftp.daumkakao.com/ubuntu xenial/main amd64 liblwp-mediatypes-perl all 6.02-1 [21.7 kB]
받기:24 http://ftp.daumkakao.com/ubuntu xenial/main amd64 libhttp-message-perl all 6.11-1 [74.3 kB]
받기:25 http://ftp.daumkakao.com/ubuntu xenial-updates/main amd64 mysql-server all 5.7.17-0ubuntu0.16.04.2 [10.8 kB]
내려받기 19.5 M바이트, 소요시간 5초 (3,442 k바이트/초)
패키지를 미리 설정하는 중입니다...
Selecting previously unselected package mysql-common.
(데이터베이스 읽는중 ...현재 14946개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../mysql-common_5.7.17-0ubuntu0.16.04.2_all.deb ...
Unpacking mysql-common (5.7.17-0ubuntu0.16.04.2) ...
Selecting previously unselected package libapparmor-perl.
Preparing to unpack .../libapparmor-perl_2.10.95-0ubuntu2.6_amd64.deb ...
Unpacking libapparmor-perl (2.10.95-0ubuntu2.6) ...
Selecting previously unselected package apparmor.
Preparing to unpack .../apparmor_2.10.95-0ubuntu2.6_amd64.deb ...
Unpacking apparmor (2.10.95-0ubuntu2.6) ...
Selecting previously unselected package libaio1:amd64.
Preparing to unpack .../libaio1_0.3.110-2_amd64.deb ...
Unpacking libaio1:amd64 (0.3.110-2) ...
Selecting previously unselected package libnuma1:amd64.
Preparing to unpack .../libnuma1_2.0.11-1ubuntu1_amd64.deb ...
Unpacking libnuma1:amd64 (2.0.11-1ubuntu1) ...
Selecting previously unselected package mysql-client-core-5.7.
Preparing to unpack .../mysql-client-core-5.7_5.7.17-0ubuntu0.16.04.2_amd64.deb ...
Unpacking mysql-client-core-5.7 (5.7.17-0ubuntu0.16.04.2) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.17-0ubuntu0.16.04.2_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.17-0ubuntu0.16.04.2) ...
Selecting previously unselected package mysql-server-core-5.7.
Preparing to unpack .../mysql-server-core-5.7_5.7.17-0ubuntu0.16.04.2_amd64.deb ...
Unpacking mysql-server-core-5.7 (5.7.17-0ubuntu0.16.04.2) ...
Selecting previously unselected package psmisc.
Preparing to unpack .../psmisc_22.21-2.1build1_amd64.deb ...
Unpacking psmisc (22.21-2.1build1) ...
Selecting previously unselected package libevent-core-2.0-5:amd64.
Preparing to unpack .../libevent-core-2.0-5_2.0.21-stable-2ubuntu0.16.04.1_amd64.deb ...
Unpacking libevent-core-2.0-5:amd64 (2.0.21-stable-2ubuntu0.16.04.1) ...
Processing triggers for systemd (229-4ubuntu10) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
mysql-common (5.7.17-0ubuntu0.16.04.2) 설정하는 중입니다 ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-5.7.
(데이터베이스 읽는중 ...현재 15287개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../mysql-server-5.7_5.7.17-0ubuntu0.16.04.2_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.17-0ubuntu0.16.04.2) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../libhtml-tagset-perl_3.20-2_all.deb ...
Unpacking libhtml-tagset-perl (3.20-2) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../liburi-perl_1.71-1_all.deb ...
Unpacking liburi-perl (1.71-1) ...
Selecting previously unselected package libhtml-parser-perl.
Preparing to unpack .../libhtml-parser-perl_3.72-1_amd64.deb ...
Unpacking libhtml-parser-perl (3.72-1) ...
Selecting previously unselected package libcgi-pm-perl.
Preparing to unpack .../libcgi-pm-perl_4.26-1_all.deb ...
Unpacking libcgi-pm-perl (4.26-1) ...
Selecting previously unselected package libfcgi-perl.
Preparing to unpack .../libfcgi-perl_0.77-1build1_amd64.deb ...
Unpacking libfcgi-perl (0.77-1build1) ...
Selecting previously unselected package libcgi-fast-perl.
Preparing to unpack .../libcgi-fast-perl_1%3a2.10-1_all.deb ...
Unpacking libcgi-fast-perl (1:2.10-1) ...
Selecting previously unselected package libencode-locale-perl.
Preparing to unpack .../libencode-locale-perl_1.05-1_all.deb ...
Unpacking libencode-locale-perl (1.05-1) ...
Selecting previously unselected package libhtml-template-perl.
Preparing to unpack .../libhtml-template-perl_2.95-2_all.deb ...
Unpacking libhtml-template-perl (2.95-2) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../libtimedate-perl_2.3000-2_all.deb ...
Unpacking libtimedate-perl (2.3000-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../libhttp-date-perl_6.02-1_all.deb ...
Unpacking libhttp-date-perl (6.02-1) ...
Selecting previously unselected package libio-html-perl.
Preparing to unpack .../libio-html-perl_1.001-1_all.deb ...
Unpacking libio-html-perl (1.001-1) ...
Selecting previously unselected package liblwp-mediatypes-perl.
Preparing to unpack .../liblwp-mediatypes-perl_6.02-1_all.deb ...
Unpacking liblwp-mediatypes-perl (6.02-1) ...
Selecting previously unselected package libhttp-message-perl.
Preparing to unpack .../libhttp-message-perl_6.11-1_all.deb ...
Unpacking libhttp-message-perl (6.11-1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.17-0ubuntu0.16.04.2_all.deb ...
Unpacking mysql-server (5.7.17-0ubuntu0.16.04.2) ...
Processing triggers for systemd (229-4ubuntu10) ...
Processing triggers for ureadahead (0.100.0-19) ...
libapparmor-perl (2.10.95-0ubuntu2.6) 설정하는 중입니다 ...
apparmor (2.10.95-0ubuntu2.6) 설정하는 중입니다 ...
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
diff: /var/lib/apparmor/profiles/.apparmor.md5sums: No such file or directory
libaio1:amd64 (0.3.110-2) 설정하는 중입니다 ...
libnuma1:amd64 (2.0.11-1ubuntu1) 설정하는 중입니다 ...
mysql-client-core-5.7 (5.7.17-0ubuntu0.16.04.2) 설정하는 중입니다 ...
mysql-client-5.7 (5.7.17-0ubuntu0.16.04.2) 설정하는 중입니다 ...
mysql-server-core-5.7 (5.7.17-0ubuntu0.16.04.2) 설정하는 중입니다 ...
psmisc (22.21-2.1build1) 설정하는 중입니다 ...
libevent-core-2.0-5:amd64 (2.0.21-stable-2ubuntu0.16.04.1) 설정하는 중입니다 ...
mysql-server-5.7 (5.7.17-0ubuntu0.16.04.2) 설정하는 중입니다 ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
libhtml-tagset-perl (3.20-2) 설정하는 중입니다 ...
liburi-perl (1.71-1) 설정하는 중입니다 ...
libhtml-parser-perl (3.72-1) 설정하는 중입니다 ...
libcgi-pm-perl (4.26-1) 설정하는 중입니다 ...
libfcgi-perl (0.77-1build1) 설정하는 중입니다 ...
libcgi-fast-perl (1:2.10-1) 설정하는 중입니다 ...
libencode-locale-perl (1.05-1) 설정하는 중입니다 ...
libhtml-template-perl (2.95-2) 설정하는 중입니다 ...
libtimedate-perl (2.3000-2) 설정하는 중입니다 ...
libhttp-date-perl (6.02-1) 설정하는 중입니다 ...
libio-html-perl (1.001-1) 설정하는 중입니다 ...
liblwp-mediatypes-perl (6.02-1) 설정하는 중입니다 ...
libhttp-message-perl (6.11-1) 설정하는 중입니다 ...
mysql-server (5.7.17-0ubuntu0.16.04.2) 설정하는 중입니다 ...
Processing triggers for systemd (229-4ubuntu10) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...

설치된 MySQL 버전을 확인해 볼려면 아래와 같이 dkpg 명령어를 이용한다. MySQL 5.7 버전으로 설치가 되었다.

# dpkg --list | grep mysql
ii  mysql-client-5.7           5.7.17-0ubuntu0.16.04.2         amd64        MySQL database client binaries
ii  mysql-client-core-5.7      5.7.17-0ubuntu0.16.04.2         amd64        MySQL database core client binaries
ii  mysql-common               5.7.17-0ubuntu0.16.04.2         all          MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-server               5.7.17-0ubuntu0.16.04.2         all          MySQL database server (metapackage depending on the latest version)
ii  mysql-server-5.7           5.7.17-0ubuntu0.16.04.2         amd64        MySQL database server binaries and system database setup
ii  mysql-server-core-5.7      5.7.17-0ubuntu0.16.04.2         amd64        MySQL database server binaries

MySQL 서버 시작

# service mysql start

MySQL 서버 종료

# service mysql stop

설정 파일 위치는 /etc/mysql/my.cnf 이다. 아래와 같이 클라이언트와 서버쪽 설정 파일을 include 하도록 되어 있다.

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

서버쪽 설정을 변경할려면 /etc/mysql/mysql/conf.d/mysqld.cnf 를 수정하면 된다. MySQL 서버는 초기 설치시에 바인딩 어드레스가 127.0.0.1 로 되어 있기 때문에 리모트에서 접속이 불가하다. 리모트에서 접속을 할려면 아래와 같이 bind-address 를 0.0.0.0 으로 한 후 MySQL 서버를 재시작한다.

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0

MySQL 서버로 접속해 본다.

root@api_mysql_dev:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.17-0ubuntu0.16.04.2 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

외부 접속 설정(https://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9)

모든 IP 허용
INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('%','root',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
IP 대역 허용 ( 예: 111.222.xxx.xxx )
  • 다음과 같이 설정하면 111.222로 시작하는 모든 IP가 허용된다.
INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('111.222.%','root',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.%';
FLUSH PRIVILEGES;
특정 IP 1개 허용 ( 예: 111.222.33.44 )
INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('111.222.33.44','root',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.33.44';
FLUSH PRIVILEGES;
  • 모든 IP를 허용한 경우 다음과 같이 원래 상태로 복구할 수 있다.
DELETE FROM mysql.user WHERE Host='%' AND User='root';
FLUSH PRIVILEGES;


블로그 이미지

레몬도리 LemonDory

개발자의 이야기

HttpListener를 사용하여 개발 중에 서버포트로 연결이 불가하다는 메시지로 Exception이 떨어지는 현상이 발생하여 찾아본 명령어


명령 프롬프트(관리자 권한)를 열고 아래 명령어에 포트만 변경하여 실행하고 실행해보자


netsh http add urlacl url=http://*:8888/ user=Everyone listen=yes 


아래 참고 블로그를 링크 걸어놓는다.


참고 : http://www.windowcmc.com/q.php?q=netsh-http-kr-manual

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

출처 : https://nabacg.wordpress.com/2013/05/13/gc-background-vs-concurrent-mode/


번역이며 오역이 있을 수 있습니다.


저는 최근 .NET에서 Garbage Collection에 대해 많은 것을 읽었습니다. 프로젝트 중 하나에서 메모리 누출을 연구하고 점점 더 많은 MSDN 기사를 읽었습니다. 놀랍게도 지난 번에 주제에 대해 괴롭힘을당한 이후로이 지역에 새로운 개발이 많이있었습니다. 그래서 다른 사람들이 유용하다고 생각할 때 나중에 참조 할 수 있도록 그들을 요약 해 보겠습니다. 이 MSDN 기사 에서 CLR의 현재 GC 상태에 대한 개요를 찾을 수 있으므로 자유롭게 시작할 수 있습니다.

워크 스테이션 대 서버

실제로 두 가지 모드 가비지 콜렉션이 있습니다.이 모드는 구성 파일의 런타임 구성 부분에서 gcServer 태그를 사용하여 제어 할 수 있습니다. 워크 스테이션 가비지 콜렉션은 기본적으로 gcServer = "true"로 설정하더라도 단일 프로세서 시스템에서 항상 사용됩니다.

1
2
4
5
<configuration>
   <runtime>
      <gcServer enabled="true|false"/>
   </runtime>
</configuration>

그 모드는 실제로 꽤 오래되었습니다. gcServer 태그는 .NET 2.0에 도입되었으며 따라서 CLR의 두 번째 버전입니다. 주요 차이점은 서버 모드에서 GC를 수행하는 스레드가 1 개 이상 있고 모두 THREAD_PRIORITY_HIGHEST 우선 순위 수준 에서 실행 된다는 것 입니다. GC 전용 스레드와 각 CPU에 대한 별도의 힙 (일반 및 대형 오브젝트 모두)이 있으며 이들 모두는 동시에 수집됩니다. 여기서 우선 순위가 높은 여러 스레드를 사용하여 최대한 빨리 컬렉션을 만들려고하지만 모든 사용자 스레드가 준비 될 때까지 일시 중지해야한다는 것을 의미합니다. 일반적으로 응답 속도보다 처리량이 높은 서버 응용 프로그램에 더 적합합니다. 이는 일반적인 데스크톱 응용 프로그램의 경우가 아닙니다. 서버 모드는 리소스를 많이 소비 할 수도 있습니다.

동시 vs 백그라운드
서버 vs 워크 스테이션 외에도 동시 및 백그라운드 작업 모드가 있습니다. 둘 다 사용하면 모든 사용자 스레드를 일시 중지하지 않고 전용 스레드가 2 세대를 수집 할 수 있습니다. 0 세대와 1 세대는 모든 사용자 스레드를 일시 중지해야하지만 항상 빠릅니다. 이는 물론 애플리케이션이 제공 할 수있는 대응 수준을 높입니다. 실제 모드는 다양하며 서버 대 워크 스테이션 유형의 GC에 따라 달라질 수 있습니다. 다음 섹션에서 자세히 설명합니다. 조금 혼란 스러울 수 있으므로 아래에서 가능한 모든 조합을 찾을 수 있습니다.

워크 스테이션 가비지 수집은 다음과 같습니다.

  • 병발 사정
  • 배경
  • 비 동시성

서버 가비지 수집 옵션은 다음과 같습니다.

  • 배경
  • 비 동시성

동시 모드
Workstation GC의 기본 모드이며 다중 프로세서 시스템에서도 GC를 수행하는 전용 스레드를 제공합니다. gcConcurrent 태그 를 사용하여 끌 수 있습니다 .

1
2
4
5
<configuration>
   <runtime>
      <gcConcurrent enabled="true|false"/>
   </runtime>
</configuration>

이 모드는 병행 GC 동안 제한된 할당 기능을 희생시켜 가장 많은 시간을 소비하는 Gen2 수집이 동시에 수행되므로 사용자 스레드 일시 중지가 훨씬 짧아집니다. Gen2 수집이 진행되는 동안 다른 스레드는 새로운 임시 메모리 세그먼트를 할당 할 수 없기 때문에 현재 임시 세그먼트의 한도까지만 할당 할 수 있습니다. 현재 세그먼트에서 프로세스가 제대로 실행되지 않으면 모든 스레드를 일시 중지하고 동시 수집이 완료 될 때까지 기다려야합니다. 동시 GC가 아직 진행 중일 때 Gen0 및 Gen1 컬렉션을 수행 할 수 없기 때문입니다. 또한 동시 GC에는 약간 더 높은 메모리 요구 사항이 있습니다.

백그라운드 모드 .NET 4.0
에는 새로운 백그라운드 모드가 도입되었습니다.이 모드는 동시 모드와 비슷한 개념을 가지고 있지만, 동시 모드를 대체해야하기 때문에 기본적으로 설정되어 있습니다. Concurrent는 Workstation에서만 사용할 수있는 반면 Workstation 및 Server 모드에서도 사용할 수 있습니다. 배경 모드가 실제로 Gen2 및 Gen1 컬렉션을 수행하면서 동시에 Gen2를 수행 할 수 있다는 큰 개선점이 있습니다. 이제 gen0, gen1 모음을 전경 모음이라고합니다. 사용자 스레드가 실행 중일 때 별도의 스레드에 의해 2 세대 콜렉션 만 수행되고, 포 그라운드 콜렉션은 모든 사용자 스레드를 일시 중지해야합니다. 또한 전경 컬렉션에는 배경 컬렉션에서 일시 중지가 필요하며, 그래서 그들은 다양한 안전 포인트를 통해 서로 상호 작용합니다. 백그라운드 컬렉션은 서버 GC에서 사용할 수 있으며 .NET 4.5로 시작하는 기본 모드입니다. 서버와 워크 스테이션 백그라운드 모드의 주요 차이점은 백그라운드 GC를 수행하는 스레드의 수입니다. 워크 스테이션에서는 항상 단일 스레드이고 서버 GC에서는 CPU 당 전용 스레드가 있습니다.

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

1. 박스 




2. 개봉

  1. 구성품
    1. 케이블
      • 전원케이블
      • HDMI X 2
      • DP-Mini to DP
      • Usb 3.0(후면 허브)
      • 오디오 케이블
      • D-SUB
    2. 부속품
      • 받침대(좌,우)
      • 나사 X 4
      • 설명서


  1. 조립


친절하게 L, R 써 있고 좌, 우 모니터에 맞는 모양이 다릅니다. 확인하세요.



※ 전동 드라이버 쓰시는 분들 조심하세요 나사가 약해서 헛돌면 저렇게 마모되어 버립니다.


3.  후기


다행히 불량화소가 한개도 없네요

몇 개의 다른 분들 후기를 보고 산 것인데 다른 분들도 불량화소 이야기는 없었습니다.


마침 영화 "침묵의 목격자"가 나와서 켜놓고 사진 찍었습니다. 

연결은 U+ TV이고 UHD TV입니다.


HDMI로 연결해서 보고 있습니다. 

참고로, 모니터 기본 설정은 HDMI 1.4로 되어있습니다. 





혹시 글씨가 확대되면 깨지나 싶어서 근접해서 찍었습니다.

제 눈엔 깨지는 느낌은 없네요.


아래부터는 U+ TV에서 무료로 볼 수 있는 4K(UHD) 영화를 보았습니다. 

시간이 없어 다 못 보고 사진만 몇장 찍고 껐네요.





모니터 메뉴입니다. 

여기에서 HDMI 2.0으로 변경해주셔야 UHD가 나옵니다.


U+ TV에 연결하고 UHD로 컨텐츠를 보려고 하니 모니터가 지원하지 않는다고 나와서 메뉴에 보니 1.4로 되어 있어 변경해 주었습니다.





불량화소 테스트를 하다가 맥북에 연결해서 했더니 모니터 무결점 테스트 사이트 (http://monitor.co.kr/)에서 테스트하려고 보니 

맥에서는 제대로 작동하지 않아서 부트캠프에 연결해서 테스트 했습니다. 


맥북 레티나 15 2013 late에서 잘되네요 

HDMI로 연결했습니다. 


추가로 필요한 후기가 있으시면 댓글 달아주시면 보충하거나 답변 드리겠습니다. 



블로그 이미지

레몬도리 LemonDory

개발자의 이야기

출처 : http://theburningmonk.com/2014/08/json-serializers-benchmarks-updated-2/

DISCLAIMER : as always, you should bench­mark against your pay­load and use case, the bench­mark num­bers I have pro­duced here is unlikely to be rep­re­sen­ta­tive of your use cases and nei­ther is any­body else’s bench­mark numbers.

You can use the sim­ple test har­ness I cre­ated and see these exam­ple code to bench­mark against your par­tic­u­lar payload.

 

Json.Net, ServiceStack.Text, MongoDB Drive and Jil were all updated to the latest version.

RpgMaker’s NetJson serializer has also been added to the mix and the results are really impressive with a level of performance that’s almost identical to protobuf-net!

image

image

 

Versions tested:

Jil1.7.0
ServiceStack.Text4.0.24
Json.Net6.0.4
fastJson2.1.1.0
MongoDB Drive1.9.2
System.Json4.0.20126.16343
System.Text.Json1.9.9.1
JsonFx2.0.1209.2802
JayRock0.9.16530


블로그 이미지

레몬도리 LemonDory

개발자의 이야기

변수명 찾기 

http://stackoverflow.com/questions/9801624/get-name-of-a-variable-or-parameter

변수명 찾기, 변수 값 가져오기

https://blogs.msdn.microsoft.com/csharpfaq/2010/03/11/how-can-i-get-objects-and-property-values-from-expression-trees/

블로그 이미지

레몬도리 LemonDory

개발자의 이야기