Author: byun1114

  • [SQLite3] REPLACE INTO

    PostgreSQL에서도 이런 기능이 있었는지는 모르겠다. 그런데 찾아보다 보니 데이터가 없으면 만들어주고 있으면 바꾸어주는 기능이 있다는 것을 알게 되었다. INSERT OR REPLACE INTO 이렇게 구현하는 것 같다. 블로그에 따라서는 REPLACE INTO 만을 언급하고 있는 것들도 있다.

    그래서 이렇게 이용해 보았는데 REPLACE가 되지 않고 INSERT 만 계속 되고 있는 것을 알게 되었다. 다시 검색을 해보니 index가 없을 경우 이런 현상이 있다고 한다.

    그래서 다음과 같이 index를 생성해 준다. 여러 번 시행착오를 거친 결과 내가 원하는 형식으로 사용하려면 date와 name 을 이용한 index를 생성하여야 한다. price까지 이용하면, 당일 자료들이 중복되어 생성된다.

    CREATE UNIQUE INDEX idx ON stock_trend(name, date);

    index를 잘못 만들면, 삭제 후 다시 만들어 준다.

    DROP INDEX [IF EXISTS] index_name;
  • Constant FORCE_SSL_ADMIN already defined

    2024/05/02 21:15:11 [error] 900#900: *11 FastCGI sent in stderr: "PHP message: PHP Warning:  Constant FORCE_SSL_ADMIN already defined in /var/www/blog/wp-config.php on line 99" while reading response header from upstream, client: 192.168.88.180, server: blog.welovedoctor.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php/php8.2-fpm.sock:", host: "blog.welovedoctor.com"
    

    사용에 문제는 없는데 nginx의 error 로그를 보면 이런 메세지가 자꾸 나온다. 검색에 의하면 wp-config.php 파일에서 FORCE_SSL_ADMIN의 위치에 따른 문제라고 한다.

    /* That's all, stop editing! Happy blogging. */

    위 문장 이전에 아래 내용을 적어주고 재시작 하면 된다.

    define( 'FORCE_SSL_ADMIN', true );
  • Log, IP

    remote_addr 의 주소에 따라서 log 여부를 설정하는 방법을 이용했다.

    http 블럭 내에서 map을 이용해 remote_addr에 따른 그룹을 지정한다.

    http {
        map $remote_addr $log_true {
    	default yes;
    	192.168.88.199 no;
    	192.168.88.162 no;
    	211.48.203.66 no;
        }
    }

    다음은 server 블록에서 다음과 같이 지정한다.

    server {
        location / {
    	if ($log_true = 'no') {
                access_log off;
    	}
        }
    }

    이게 사실 제대로 동작하지 않았다. 그래서 좀 더 시도해 보았다. http 블럭에서 다음과 같이 설정한다.

     map $remote_addr $log_true {
                    default 1;
                    192.168.88.154 0;
                    192.168.88.180 0;
                    192.168.88.162 0;
                    192.168.88.199 0;
            }
            log_format compression '$remote_addr - $remote_user [$time_local] '
                               '"$request" $status $body_bytes_sent '
                               '"$http_referer" "$http_user_agent" "$gzip_ratio"';
    
            access_log /var/log/nginx/access.log compression;

    server 블럭에서 다음과 같이 해준다.

    access_log /var/log/nginx/access.log compression if=$log_true;
  • 취약한 연구 대상자

    의약품 등의 안전에 관한 규칙

    별표 4 의약품 임상시험 관리기준(제30조제1항 관련)

    별표 4 “취약한 환경에 있는 시험대상자”(Vulnerable Subjects)란 임상시험 참여와 관련한 이익에 대한 기대 또는 참여를 거부하는 경우 조직 위계상 상급자로부터 받게 될 불이익에 대한 우려가 자발적인 참여 결정에 영향을 줄 가능성이 있는 대상자(의과대학ᆞ한의과대학ᆞ약학대학ᆞ치과대학ᆞ간호대학의 학생, 의료기관ᆞ연구소의 근무자, 제약회사의 직원, 군인 등을 말한다), 불치병에 걸린 사람, 제27조에 따른 집단시설에 수용되어 있는 사람, 실업자, 빈곤자, 응급상황에 처한 환자, 소수 인종, 부랑인, 노숙자, 난민, 미성년자 및 자유의사에 따른 동의를 할 수 없는 대상자를 말한다.