<<BACK
- 선의의 돼지고기, 대가를 바라는 소고기. (2024-11-10)
- 머리로 하는 망상은 자유, 표출하면 범죄. (2024-11-10)
- 많이 버는 사람은 왜 많이 버는지 알고, 적게 버는 사람은 왜 적게 버는지 모른다. (2024-11-10)
- 정신질환은 치료를 받아야 되는것이지 이해를 해야 되는것은 아니다. (2024-11-19)
- 고인물은 해먹기 마련이다. (2024-11-20)
- 지식은 배움에서 얻고 지능은 진화에서 얻는다. (2024-11-29)
- 누구는 자신을 가꾸기보다 남을 헐뜯는 방법을 선택한다. (2024-12-03)
- 사소한 것이라도 자신의 행동에는 책임을 져야 한다. (2024-12-19)
- 맹신은 無知(무지)의 시작이다. (2025-01-18)
- 좋은말로 하면 신의 실수, 나쁜말로 하면 불량품. (2025-01-28)
- 나쁜짓은 처음이 없다. 들킨게 처음일 뿐이다. (2025-02-05)
- 사람들은 사실을 믿기보다 믿는것을 사실로 만들고싶어한다. (2025-02-28)
- 30대 이상이면 아저씨고, 아줌마다. 과거에 머물지말고 현실을 살아라. (2025-02-28)
- 한국사람은 한국국적을 가진 사람이다. (2025-03-04)
- 지구에 있는 물의 양은 항상 같다. 하늘에 있던, 땅속에 있던, 땅위에 있던, 몸속에 있던. (2025-03-07)
- 여성을 구성하는 3대 요소 : 옷, 화장품, 미용실원장. (2025-03-24)
- 고생을 모르고 힘든걸 모르는 인간은 세상에 도움이 안된다. (2025-03-28)
- 미디어로 보는 사람은 그냥 유흥거리일 뿐이다. (2025-04-08)
- 가만히 있어도 욕을 먹는다면 욕하는 사람이나 주변이 너보다 못났기때문이다. (2025-04-27)
- 지금의 대한민국은 거대양당이 만들어 놓은 나라다. (2025-05-14)
- 닭만 안먹어도 부자된다. (2025-05-22)
- 노동환경이 개선되면 일자리가 줄어들고 제품의 경쟁력이 낮아진다. (2025-05-24)
- 집값은 침흘리는 양만큼 비싸지고 생까는 양만큼 싸진다. (2025-06-05)
- 인권은 인간일때 누릴수 있는 권리다. (2025-06-24)
- 한국은 불경기가 아니다. 물가는 올라도 여전히 잘 되는곳은 잘 된다. 상술이나 맛이 없어 장사가 안될뿐이다. (2025-06-26)
- 역시는 기록에 의해 돈이 되는쪽으로 알려진다. 진실은 중요하지 않다. (2026-07-08)
- 다음생에 바퀴벌레로 태어날 사람은 하는짓도 남다르다. 타인에게 불편을 주는 쓰레기다. (2025-07-15)
- 자기일을 제대로 못하는 사람들 계속 고용할 수는 없다. (2025-08-02)
- AAA 게임들은 지구온난화를 앞당긴다. 뜨겁다... (2025-08-02)

<<BACK
PHP Data Stream POST , JSON
 
보내는 방법
curl -H "Content-Type: application/json" -X POST -d '{"newstitle":"AAA","newstext":"BBB","newsurl":"한글"}' http://192.168.1.17/sample_01.php
 
받는 방법
$data = file_get_contents('php://input');
 
JSON 변환
$jsondata = json_decode($data);
 
JSON 사용 방법
echo $jsondata["newstitle"]."<\ br>";
echo $jsondata["newstext"]."<\ br>";
echo $jsondata["newsurl"]."<\ br>";
 
JSON 뿌리기
	// 그룹에 대한 정보를 저장
	header("Content-Type: application/json");
	$groupData = array();
	$groupData["groupName"] = "서태지와 아이들";
	$groupData["debutYear"] = "1992";
	$groupData["memberCount"] = "3";
	// 첫 번째 코드와 동일
	$member1 = array("name" => "서태지", "height" => "173cm", "weight" => "55kg");
	$member2 = array("name" => "양현석", "height" => "180cm", "weight" => "70kg");
	$member3 = array("name" => "이주노", "height" => "172cm", "weight" => "53kg");
	$memberData = array($member1, $member2, $member3);
	// JSON Array를 연관 배열로 저장 키이름은 memberData
	$groupData["memberData"] = $memberData;
	// JSON Array가 포함된 Object를 문자열로 변환
	$output = json_encode($groupData);
	// 출력
	echo urldecode($output);

JSON 보내고 결과받기
	$url = "https://api.openai.com/v1/chat/completions";
	$model = "gpt-3.5-turbo";
	$header = array(
		"Authorization: Bearer ".$API_KEY,
		"Content-type: application/json",
	);
	$params = json_encode(
		array(
			"messages" => $data,
			"model" => $model,
			"temperature" => 1,
			"max_tokens" => 1500,
			"top_p" => 1,
			"frequency_penalty" => 0,
			"presence_penalty" => 0,
			"stream" => True
		)
	);
	// create a new cURL resource
	$curl = curl_init();
	// set URL and other appropriate options
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_HEADER, 0);
	curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
	// enable streaming
	curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
	curl_setopt($curl, CURLOPT_WRITEFUNCTION, function($curl, $chunk) {
		// do something with the streamed data
		echo $chunk;
		return strlen($chunk);
	});
	// execute the request
	curl_exec($curl);
	// close cURL resource
	curl_close($curl);


<<BACK
Oracle

테이블스페이스 생성
create tablespace [테이블스페이스명]
datafile 'C:\oracle\oradata\orcl\[테이블스페이스명].DBF' size 1G reuse autoextend on next 100M maxsize unlimited;

사용자 생성
CREATE USER [사용자명] IDENTIFIED BY [암호];
테이블스페이스를 지정하려면 뒤에 DEFAULT TABLESPACE [테이블스페이스명] 붙임.
GRANT CONNECT, RESOURCE TO [사용자명];
GRANT CREATE VIEW TO [사용자명];

관리자 암호 변경.
sqlplus / as sysdba 접속
alter user system identified by '암호';
alter user sys identified by '암호';

암호 만료가 되었을 때
select * from dba_profiles where profile = 'DEFAULT';
초기에 180일로 되어 있다.
alter profile default limit password_life_time unlimited;
unlimited 로 변경해주면 없어진다.

만료가 되면 락이 걸림으로 해제를 한 후 비밀번호를 바꾼다.
alter user 계정 account unlock;
alter user 계정 identified by '암호';

빈테이블도 백업되도록 설정
alter system set DEFERRED_SEGMENT_CREATION=FALSE scope=both;

LOCK 확인 및 KILL
SELECT A.SID || ', ' || A.SERIAL# AS KILL_TASK
FROM V$SESSION A INNER JOIN V$LOCK B ON A.SID = B.SID INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID
WHERE B.TYPE = 'TM' ;

ALTER SYSTEM KILL SESSION '[KILL_TASK]'


SELECT 'ALTER SYSTEM KILL SESSION '''||A.SID || ', ' || A.SERIAL# || ''';' AS KILL_TASK
FROM V$SESSION A INNER JOIN V$LOCK B ON A.SID = B.SID INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID
WHERE B.TYPE = 'TM' ;

<<BACK
C#(CSharp)

// 폼에있는 Panel에 다른폼 넣기
// mainform properties isMdiContainer=true
	 Form2 f = new Form2();
	 f.MdiParent = this;
	 f.WindowState = FormWindowState.Maximized;
	 f.FormBorderStyle = FormBorderStyle.None;
	 f.Dock = DockStyle.Fill;
	 this.workPanel.Controls.Add(f);
	 f.Show();


// Top 5 HTML Parsers in C# (source : bright data)

1. AngleSharp
2. Html Agility Pack
3. CsQuery
4. MariGold.HtmlParser
5. Majestic-12

Process 클래스 사용하기
	Process ps = new Process(); 
	ps.StartInfo.FileName = "실행파일이름"; 
	ps.Start(); 
	ps.WaitForExit();


DLL파일 EXE에 합치기
먼저 컴파일을 한 후 exe파일이 있는 위치에 있는 DLL파일들을 모두 복사한다.
프로젝트에 res폴더를 만들고 속에 모두 붙여넣기 한다.
DLL파일들 속성에 빌드작업을 '포함 리소스'로 변경한다.
program.cs 소스를 수정한다.
using System;
using System.Linq;
using System.Windows.Forms;
using System.Reflection;	// 추가
using System.IO;	// 추가

namespace Launcher
{
    static class Program
    {
        /// 
        /// 해당 애플리케이션의 주 진입점입니다.
        /// 
        [STAThread]
        static void Main()
        {
            AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ra);	// 추가

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new mainForm());
        }

		// 추가
        static Assembly ra(object sender, ResolveEventArgs args)
        {
            Assembly ta = Assembly.GetExecutingAssembly();
            var name = args.Name.Substring(0, args.Name.IndexOf(',')) + ".dll";
            var resources = ta.GetManifestResourceNames().Where(s => s.EndsWith(name));

            if(resources.Count() > 0)
            {
                string resourceName = resources.First();
                using (Stream stream = ta.GetManifestResourceStream(resourceName))
                {
                    if(stream != null)
                    {
                        byte[] assembly = new byte[stream.Length];
                        stream.Read(assembly, 0, assembly.Length);
                        Console.WriteLine("DlL load : " + resourceName);
                        return Assembly.Load(assembly);
                    }
                }
            }
            return null;
        }
		
    }
}


C# 폼을 투명하게
BackColor = TransparencyKey로 설정.
form1.Opacity = 1; // 100%
form1.Opacity = 0; // 0% 바탕화면이 보임.
form1.Opacity =0.5; // 50%


<<BACK
PowerShell

// 텍스트파일 1000줄씩 나누기
$i=0; Get-Content input.txt -ReadCount 1000 | %{ $i++; $_ | Out-File output-$i.txt; Write-Host $i }

<<BACK
광고게시사이트

카카오 https://adfit.kakao.com
구글 에드센스 https://adsense.google.com