Unity3d 유니티와 인연을 맺다..

Unity3d 유니티 컴포넌트 접근하기

안녕하세요 메르세데스입니다. 

game만들기를 해보려고 이리 저리 알아보던중.. Unity3d라는 게임엔진을 알게 되었는데요.. 사실 그냥 메모장으로도 실력이 뛰어나다면..만들수야 있겠죠.. 하지만 그건 저한테 해당되는 사항이 아니고요.. 게임엔진을 이용하여 개발한다면.. 좀 더 전문적이고 쉽게 할 수 있겠구나라는 생각으로 알아보던중  (언리얼엔진이나.. 수많은 게임엔진이 있습니다)

Unity와 인연을 맺게 되었습니다.  하지만 기초가 탄탄하지 못해서 유니티 기초서적을 몇권 구입해서 보고 따라해보고 했는데 도무지 진도가 잘 안나가 더라고요..  

책만 열심히 보면 뚝딱! 나만의 게임을 하나 만들어 보겠구나..했습니다. 제가 워낙 게임을 좋아도 하고.. 옜날부터 하고싶었던 일이기도 했고요.. 사정상 연관성이 크게 없지만.. IT계통에서 일을 하고 있었는데 더 늦어서는 안될것 같아서 차근차근 준비를 하고 있었습니다.

디자인 이런것도 중요하지만.. 핵심이되는 대부분의 기능이 스크립트언어를 모르면 도무지 손을 델수 없는 구조여서.. 

이러면 안되겠구나 하여..C#을 하나 구입하여 정독하고 도전하기로 하였습니다.

나와있는 예제들은 거의 웬만한것들은 직접 타이핑을쳐서 실행도해보고하니.. 제법 C#이 손에 익어가네요.. 그래봤자 초보적인 수준이지만.. 한번 훑어보고 나서 다시 유니티 책을 들여다보니 시력에 딱 맞는 안경을 쓴 것 처럼 조금 보이기시작하는군요.

지금와서 돌아보니 클래스가 뭔지 메소드가 뭔지 모르는상태에서  열정만으로는 게임을 만들 수 없다는 것을 알았습니다. 하지만 이런열정이 프로그램언어를 독학으로 배우게끔 하는 동기부여를 해 주네요..

다른 프로그램언어를 좀 해본 경력이 있어 배우는데는 큰 어려움은 없었지만..  책을 전체적으로 한번 훑어보는게 얼마나 중요한지 알게 되었습니다. 물론 실전에서 경험해 가면서 해보는것도 정말 중요하고 기억 많이 남고 실력 향상에 도움이 되지만 책을 좀 봤다면.. 이런 상황에서 어떤식으로 접근하면 되겠구나? 라는 대략적인 그림이 그려지는것 같거든요

결과물은 같지만... 중간의 과정을 좀 더 쉽게 풀어나갈 수 있는 힌트를 알려 주는 것 같습니다.

이제부터 Unity와 친해질 일만 남았네요.. 천리길도 한걸음부터니.. 열심히 해보려고 합니다.

그리고 공부해가면서 중요한 사항을 블로그에 포스팅을 하면서 가려고 합니다.






Iptime Extender2 설치,설정하기

안녕하세요 메르세데스입니다

이번시간에는 iptime Extender2의 설치와 설정하는 방법에 대해 알아보고자합니다.


대체 어디에 쓰는 물건인지.. 궁금하실건데요..


요즘 wifi안되는 곳을 찾아 보기 힘든 시대가 왔는데요..   회사의 사무실이나 가정집과같은 장소에서 무선수신률이 안좋은 장소의 신호를 증폭하여 주는 역할을 합니다.  기존에 iptime무선공유기가 있다면.. 호환성이 좋기때문에 어려운 설정없이 바로 적용이 가능합니다.



Iptime Extender2 외형..


외형은 아래와 같습니다.
좌/우로 4db안테나가 달려있습니다.

전면을 살펴보면.. 
wifi , Extending, Lan  이렇게 3군데에 Led불이 들어오는 부분이 있습니다. 또한 하단부분에는 [RST/WPS] 버튼이 있죠.. 그리고 화면상에는 안보이지만 장비의 오른쪽 측면부분에 전원버튼이 있습니다.


iptime extender2





또한 뒤엣부분을 살펴보면..  바로 전원콘센트에 꽂을 수 있도록 설계되어있죠.





그리고 아래부분에는 RJ-45 Port 가 있습니다.

IPTIME EXTENDER2 설치하기


이 장비의 기본적인 기능은 무선 신호를 수신 받아 증폭하는 역할입니다.  그 용도에 맞추어.. 외형도 이렇게 디자인이 되었다고 생각이 듭니다.

별도의 유선 케이블 연결 없이 근처의 전원 플러그에 꽂아 사용할 수 있게 말이죠..


설치 및 설정 방법은 2가지가 있습니다.


설치 방법1


1)IPTIME 공유기의 RST/WPS버튼을 누른다..
2)IPTIME EXTENDER2 장비의 RST/WPS버튼을 누른다.. (30초 정도 기다린다)

   장비의 Extending이라는 곳에 파란색 불이 깜박이지 않고 유지되고 있다면 연결 성공!



iptime extender2


이 방법을 이용하면 버튼만 누르면 되기 때문에 일반인들도 간단하게 연결을 할 수 있습니다.

버튼을 누르는 것 만으로.. 공유기의 암호화 방식/인증방법, 비밀번호까지 알아서 설정됩니다.


설치방법2.


관리자 메뉴를 이용하여 연결하는 방법입니다. 이 방법은.. 타사 공유기와의 연결을 하려 할때나.. 설치되어있는 곳에 손에 닿지 않아 힘들 때.. 아니면 사용자 설정으로 좀 다르게 구성하려고 할 때 이용하시는 방법이 되겠습니다.

[연결하기에 앞서] 
연결을 위한 노트북이나 pc과 랜 케이블이 필요합니다.
WIFI로 연결하여 설정할 수 없습니다.

1) IPTIME EXTENDER2의 하단에 랜 케이블을 연결하여 노트북/PC에 연결합니다.
2) 내 컴퓨터의 로컬영역 IP주소를 192.168.0.100으로 변경합니다.
    저는 OSX에서 설정하였습니다..

iptime extender2설정

3)웹페이지를 열고 주소창에 192.168.0.254를 입력한 후 관리자 페이지로 접속합니다.

iptime extender2설정
    설정이 정상적으로 완료되었다면 웹페이지에 위와 같은 화면이 떠야 합니다.

iptime extender2설정


[익스텐더 설정] 메뉴를 눌러보시면.. 오른쪽에 표시되는 부분에서 [무선익스텐더모드]를 선택하시고.. 바로 아래에 [연결할 AP검색]을 눌러 연결 하고자 하는 WIFI를 선택합니다.




iptime extender2설정



주변에 떠있는 WIFI신호들이 정말 많네요.. 또한 보면.. 숨겨져 안 보이는 것들이 왜 이리 많은지..
iptime extender2설정

선택을 하셨다면..  인증 방법과 암호화 방법 그리고 비밀번호가 설정이 되어 있다면 비밀번호까지 설정을 해주세요...  유/무선 공유기의 설정과 동일하게 맞춰주시면되겠습니다.

그리고 오른쪽 하단의 [적용] 버튼을 눌러 연결해 주시면 됩니다.  얼마 지나지 않아..IPTIME EXTENDER2장비의 중간에 Extening이라는 불이 깜박이다가.. 파란색으로 유지되면.. 연결이 성공한 것입니다.

iptime extender2설정





Led에는 연결된 것 같아 보이는 화면에 연결됨이라고 표시가 안된다면.. 메뉴 탐색기에서 다른 메뉴를 눌러보고 다시 [익스텐더 설정]이라는 메뉴를 눌러보세요.. 그럼 연결이 완료된 것이 보일 것입니다.

iptime extender2설정


생각보다 번거롭네요.. 하지만 gui이기 때문에 천천히 따라하시면 큰 어려움이 없을 것이라 생각합니다.

관리자 모드로 설정한다면.. SSID의 이름을 변경할 수 있습니다. 첫 번째 방법으로 연결을 하였다면.. 같은 이름으로 WIFI이름이 보이게 됩니다.

또한 IPTIME EXTENDER2를 갖고 활용할 수 있는 다른 방법까지 설정할 수 있습니다.


유선랜 사용하기


난데없이 증폭기에서 유선 랜을 사용한다고 하니.. 이상하실 겁니다.
Extender 모드가 정상적으로 작동한다면..  장비 하단에 RJ-45포트에 랜 케이블을 연결하여 꽂으면.. 유선인터넷을 사용하실 수 있습니다. 물론.. 그 정책은 익스텐더로 연결한 공유기의 설정과 동일합니다. 아마 대개는 DHCP 이실 테니 자동IP로 설정하시면 되겠죠?

그렇게 하면.. 데스크탑은 유선으로, 노트북이나 스마트폰은 wifi로 사용 가능합니다.





번외- 부가 기능 사용하기!


AP모드 사용하기!


무선 확장 모드는 위에서 설정한 2가지 방법으로 하시면 됩니다. 지금 소개할 것은  이 장비를 갖고 AP모드로 사용하는 방법입니다.

설정하기에 앞서 AP모드가 무엇인지 알아보고 진행해야겠네요..!


AP모드는..  Access Point 라고 하죠. 무선 신호를 발생 시키는 장비입니다.  유/무선공유기에 해당합니다. 카페나 공공장소에 설치되어있는 wifi장비들이 이런 것이죠

즉 이것을 이용하여 무선 공유기처럼 사용할 수 있다는 이야기입니다. 

그럼 위에 설정한 확장하는 방식과는 무슨 차이가 있는 걸까요?

위에 것은 약한 신호를 증폭한 것이고.. 그렇기 때문에 각종 공유기의 설정들이 전부 똑같이 복사가 됩니다.

그냥 중계기의 역할을 하는 것 입니다.

하지만 지금 설정하려는 것은.. 받은 신호를 갖고..별도의 네트워크를 구성한다는 것입니다. 말이 좀 어렵네요..  위의 것이 허브라면... 아래 것은 인터넷 공유기라고 생각하시면 됩니다.



설정하기


iptime extender2에서 제공하는 AP모드는..  
유선 신호를 입력 받아-> 무선으로 구성하는 방법입니다.

그러면.. 그냥 유/무선 공유기를 사는 게 낫지.. 왜 이런 것을 이용해야 하는지 급 궁금증이 생기게 됩니다. 왜????  대체 왜?????

네 맞습니다. 그렇기 때문에 부가 기능인 것이죠..  

하지만.. 장점이 있습니다. 바로..  전원 아답터가 없이 바로 콘센트에 꽂을 수 있는 것!

만일 POE기능이 있었다면 더욱 좋았겠지만.. 단가 자체가 다르기 때문에.. 저렴하잖아요^^;


설정하는 방법은.. 관리자 모드에서 만 가능합니다.

하지만.. 설정할 수 있는 메뉴가 몇 개 안되어 기본적인 최소한의 AP모드만 됩니다.



설정하기에 앞서.. 유선으로 들어오는 LAN포트의 네트워크가 어떤 것 인지 알아야겠죠?


제가 확인해보니 입력 신호가 DHCP인 것만 적용되는 것 같습니다.


예를 들어..DHCP네트워크인데 IP가 192.168.0 대로 받아진다..이 정도는 알아야 합니다.



[익스텐더 설정] 메뉴에서 [AP모드]를 설정하시면 되겠습니다.



그리고 무선WIFI이름을 지정해주시고..   채널 설정하시고  인증 방법 암호화 방법과 암호를 넣어 주시면 됩니다.

참고로 인증 방법이 개방 모드일 경우 인터넷 속도가 54Mbps이니 가급적 WPA~ 된 것으로 하시면  되겠습니다.


iptime extender2설정




그리고.. [시스템관리]-[내부 네트워크 설정]의 내부 주소 IP의 C-CLASS를 좀 전에 DHCP대역과 안 겹쳐지도록 조정해 주셔야 합니다.


예를 들어..입력 신호가 192.168.0 이라면...  내부 주소를 0 이 아닌 다른 대역 즉 192.168.1.254 이것처럼 바꿔 주면 됩니다.


이렇게 해야 하는 이유는 입력되는 IP대역과 동일한 내부 주소가 설정이 되면.. 네트워크 패킷들이 공유기와 AP장비 사이를 왔다 갔다 갈팡질팡하면서 매우 느리게 되고.. 잘 되다가 갑자기 안되고를 반복하겠죠.. 이것은.. EXTENDER장비 뿐만 아니라...  네트워크 구성 기본이기도 합니다.  내부 네트워크 대역을 입력 받아 들어오는 것과 다른 것으로 해 주셔야 합니다.




iptime extender2 AP모드



이렇게 설정을 완료하신 후..   랜 케이블을 iptime extender2 하단에 꽂는다면.. 무선 공유기처럼 사용 가능 합니다^^.



장점/단점


장점으로는 

*선 없이 무선으로  wifi를 중계할 수 있다.
*WPS버튼을 눌러 간편하게 확장 가능
*인터넷 설치가 어려운 곳이나 신호가 약한 곳에서  큰 효과를 발휘합니다.
(한 공유기에 2개 3개 등의 연결이 가능)
*전원아답터가 없어 단순하고 설치가 용이함

단점으로는

*이 기종 간의 호환성 문제.. t-WIFI,올레,유플러스등과는 연결이 잘 안됩니다.
*WPS버튼으로 설정이 아니라면 초보자들이 설정하기에는 어려울 수 있습니다.
*갑자기 정전 등으로 전원이 나갔을 경우 측면 부분의 전원 버튼을 눌러줘야 커짐!
*채널 중복 문제 등 얘기치 못한 상황을 초보자들이 대처하기 힘들 수 있음


잘 사용하면 득..  잘 네트워크를 잘 모르시는 분들께는 어려우실 수 있습니다.


이상으로 Iptime Extender2의 설치,설정 법을 알아봤습니다.

C# 에서 파일다루기입니다 (File)

안녕하세요 메르세데스입니다. 이번시간에 알아볼 것은 C#에서 파일 다루는 방법입니다.

프로그래밍하면.. 조회하는것도 중요하지만.. 프로그램을 통해 내 컴퓨터안에 File을 만든다던가.. 명칭을 변경하거나 디렉토리를 생성하는등의 이런작업도 알아두면 정말 도움이 될 것아니겠어요?

C#에서도 물론 이런것에 대한 기능을 지원합니다.  관련된 클래스와 메소드들도 준비되어있거든요 잘 따라서 배워보면 됩니다.

물론 요즘은 데이터베이스가 있어서 이곳에 기록하고 조회하는것들도 많이 하는데.. 필요에따라 간단하게 내 컴퓨터안의 디렉토리에 저장하거나 수정하는 작업도 간간이 필요하거든요..  



클래스
설명
File
파일생성 복사 삭제 이동 조회 처리 statc Method
FileInfo
위와동일하나 static Method대신 인스턴스 메소드제공
Directory
디렉토리 생성 삭제 이동 조회 처리 statc Method
DirectoryInfo
위와동일하나 static Method대신 인스턴스 메소드제공


크게 보면 2가지를... 좀 분류를 하자면 각각에 2개씩해서 4가지 클래스가 제공됩니다.
이것들을 사용하시려면.. using system.IO; 를 추가해 주셔야 겠습니다.

책의 집필자의 이야기는...  정적메소드를 제공하는것과 인스턴스메소드를 제공하는것 이렇게 분류가 되어있는데.. 기능은 전부 동일하지만..

처리작업이 많을경우.. 인스턴스 메소드를 제공하는 ~Info로 끝나는 클래스를 참조해서 하는게 바람직하다고하네요..

해당하는 조건에 맞는것을 골라서 선택해서 사용하면됩니다.

File,FileInfo 클래스를 보더라도..

Create() , Copy(), Delete(), Move(),(*MoveTo() FileInfo )

거의 비슷하여 사용하는데 큰 무리가 없어보입니다.

예제를 안 볼 수 가 없겠네요..

C# file 파일다루기


화면에는 빠져있는데 상단에  Using System.IO;가 추가되어야 제대로 동작합니다.

그동안에 배워왔던 내용들이 섞여있네요.. LINQ를 이용한것과.. 무명메소드도 들어있고..

LINQ안에 let라는 키워드가 있는데 이게 먼지 한참 책을 뒤적거렸네요.. 링큐배울때는 못봤던거라..  
sql안에서 일종의 var 형처럼 변수를 만들때 사용하는거라고합니다 참고하셔야겠네요

args[0] 를 이용해서 프로그램실행시 뒤에 파라메터를 추가해서.. 경로를 받으면.. 이걸 이용해서.. 하위디렉토리를 조회하는것과 하위디렉토리의 파일목록을 조회하는 걸 만들어보는 예제입니다.

무언가.. File과 디렉토리 목록들이 다뤄져 조회되는걸 보니 .. 이제 좀 제대로 된 프로그램을 하는것 같구나.. 라는 생각이 듭니다 ^^

이상으로 C#으로 파일다루기에 대해 알아봤습니다. 감사합니다.









C# LINQ InnerJoin OuterJoin 알아봅시다.

안녕하세요 메르세데스입니다. 이번시간에는 LINQ의 Join에 대해 알아보도록 하겠습니다.

Join도 역시 마찬가지로 sql문에서 정말 다양하게 사용되는 기본기능중에 하나죠..


쉽게 이야기하자면..교집합과 합집합을 생각하시면되겠습니다.


내부조인(Inner Join)은 교집합.. 외부조인(Outer Join)은 합집합이 되겠습니다.


두  데이터 원본사이에 일치되는 데이터를 연결하여 원하는 값을 얻는 방법이 되겠습니다.





Table -a                          Table-b

[name] [height]           [name] [product]
 aaaa     180                aaaa     "apple" 
 bbbb     160                bbbb     "orange" 
 cccc      170                bbbb    "grape"
 dddd      165               dddd     "mango"

A, B테이들이 있는데  name이라는 field에 중복되는 항목들중 겹치는 것과 겹치지 않는것을 생각하시면 되겠습니다. 


문법이 쿼리와는 너무 다르니 좀 복잡한것 같습니다. 벌써 머리가 굳어서 새로운게 잘 안들어가네요.. 비울자리도 없고..ㅜㅜ



 join 을 하는 문법을 알아보겠습니다.



InnerJoin

from a in A
join B in B on a.xx  equals b.xx   <-- equals 키워드를 이용해서 연결에주목!



Outer Join

from a in A
join B in B on a.xx equals b.xx into C    <-- into 문이 추가되었습니다.
from B in C.xxxx  

특이한 점은 ==이 아니라 equals라는 키워들 이용해서 두 데이터간의 같음을 비교했다는거죠..

무언가 이렇게 할 수 밖에 없었던 이유가 있었을까요?

외부조인에서 into 문이 뒤에 따라 붙은것은.. 조인결과에대한 공백부분을 처리하는 방법때문인듯 합니다. 그리고 구별도 해야하니까요..

예제를 살펴보겠습니다.


C# LINQ join

프로퍼티객체 arrProfile, arrProduct에서 공통이되는 Name, Star를 각각 내부조인과 외부조인을 걸어 결과를 출력했습니다.

외부조인에서는... 좀 복잡하네요 저도 잘 이해가 안되는데요.. 공백문자가 찍히는것을..대체문자로 입력하는거는 이렇게 하면된다! 라는것을 잘 보여주는 예제인것 같습니다.


저는 솔직히 이정도까지의 LINQ를 사용해야 할 때가 올지는 잘 모르겠습니다. 그냥 데이터베이스에 sql문을 던져서 가져오는것이 좀 더 편할것 같습니다.ㅜㅜ



책뒤에 나와있는 연습문제를 하나 풀어보겠습니다.

결과는 있지만.. 중간에 과정이 없죠? 방법은 수백가지가 될테니까요.. 미숙하지만..

한번 작성해봤습니다.


문제가 무엇이냐면..

Cost 는 50이상.. MaxSpeed는 150이상인 레코드만 조회하는 LINQ를 만들라는건데요


var selected = /* 이곳을 채워 넣으라는겁니다.  */


C# LINQ example


람다식을 최근에 배워서 한번 이렇게 적용을 해봤습니다.  




이상으로 C#의 LINQ JOIN하는 방법까지 알아봤습니다.












C# LINQ 의 group by 문법을 알아보겠습니다.

안녕하세요 메르세데스입니다. 

group by 하니깐.. sql이 생각이 나네요.. 네 그렇죠!!     그룹별로 통계를 낼때 유용하게 사용되는 문법입니다. C#에서도 사용할 수 있다니 반갑습니다. 그렇지만.. 제가 느끼기엔 아직 무언가 부족해보이는데요.. 아무래도 아직 사용방법을 익숙하게 다루지를 못하서겠지요..  저는 sql에서 count(*)를 하여 해당 그룹으로 지정된 것의 갯수를 파악할경우 사용하거든요..  대부분은 사용 용도가 비슷하지 않을까 생각 합니다.


1.문법

group A by B into C


A,B,C는 이렇게됩니다.
A는 사용중인 변수가됩니다.
B는 기준이되는 조건..
C는 그룹변수를 위치시키는 자리인데요.. .key라는 곳에 B기준에대한 결과가 true, false로 들어옵니다.

예제를 돌려서 확인하는게 빠르겠죠?


2.사용예제



C# LINQ group by  example

예제를 실행해봤는데요.. group [A] by [B] into [C] 에서 보이듯이..

[B]위치에는  profile.Height <175 인 조건이 들어가고.. [C]위치에 그룹변수를 위치시키네요..    .key에 결과여부를  true, false로 할당 해줬습니다.

그리고 무명형식을 이용해서..  새로운형식을 즉석(?)으로 만들어 var listPrifile에 넘겨 줬습니다.



그래서 콘솔창에 출력해 본 결과 위의화면처럼 표시가됩니다. 175 미만인것과 이상인것으로 분류가 나뉘어 표시가됩니다.

LINQ의 각종 문법을 사용하려면 많은 연습이 필요할 것 같네요..  이정도로 정리하는것으로 마무리를 지어야 겠습니다. 감사합니다.




C# LINQ를 이용해보자 from where orderby select

C# LINQ의  from where orderby select 대해 알아보겠습니다.


지난시간에 이어서 이번에는 데이터를 조금더 가공해서 출력하는것을 해보려고 합니다.



예제를 풀어나가기에 앞서


기본적인 문법을 먼져 알아보고 넘어가도록 하겠습니다.



1.from

 sql문을 접했던 사람이라면 익숙하실텐데요..  문법적인 어순이 쿼리와는 조금 차이가 있지만 의미는 다르지 않습니다. 대상이되는 무엇인가를 from 뒤에다가 써 주는 것입니다.


대상이되는 배열이나 리스트 등이 되겠지요.. 


아직 제 눈에 안익어서 저도 어색합니다만.. 많이 연습해보는 수 밖엔 없겠지요..





int[] arrays = { 1,2,3,4,5,6,7,8,9};
...
var tests = from test in arrays     <-- from 뒤에  in arrays 이런식으로 넣어줬네요
..


마치 foreach문과 비슷해보이네요.. LINQ에서 사용하게 될 변수와 접근하게될 데이터를 차례로 써 주시면됩니다.



2.where

이건.. 원하는 조건을 넣어주는 곳입니다.   Filter역할을 하는것이죠...   가령 이런 것 처럼요..   위에 있는 숫자들중 5보다 큰 숫자만이라던가..  원하는 데이터에 조건을 거는 것입니다. 혹시 and연산이 되는지  저도 모르게 그만 and 를 넣었더니 에러가 나네요 .. 그렇죠.. C#에서는.. &&였는데...   ^^



3.orderby

이것도 잘 아시겠지만.. 정렬순서를 정하는 방법입니다. 오름차순으로 할 것인지 아니면 내림차순으로 할 것인지를 말죠.. 뒤에를 그냥 생략하면 오름차순(ascending)입니다. 반대로 내림차순을 원하신다면 뒤에 descending을 써주시면되겠습니다.



4.select


최종적으로 결과가 추출 되는 변수입니다.  그냥 단순히.. 결과에 해당하는 리스트만을 변수로 출력할 수 있지만.. 이곳에 데이터를 조작하여 변경을 한 결과를 출력할 수 도 있습니다 기존의 쿼리와 비슷하죠?  C#에서는 데이터베이스의 sql만큼의 다양한 문법이 지원이 되지는 않지만 그래도 데이터추출에 필요한 기본적인것이 가능합니다.


select문을 좀 더 변화시켜서 결과를 뽑아보도록 하겠습니다.



C# LINQ select where orderby select


위의 예제에서보면.. where 절에 &&(and) 조건을 넣어서 좀 더 구체적인 요청을 하였습니다.  또한..  select절을 살펴보면...  무명형식을 이용해서 .. Name과 InchHeight를 만들어 0.393을 곱하여 cm에서 인치계산한 후 결과를  var prifiles에 할당해 버렸네요..  

var형식을 취하고 있기때문에 select절의 결과에 맞춰서 알아서 형식이 결정되어 편리합니다. 


무명형식에 대해 잠시 알아보자면..



var myInstance = new { Name = "Test" , Age = "27" };

괄호와 그 사이에 임의 프로퍼티 이름을 적고 값을 할당하면 새 형식의 프로퍼티가됨
단! 할당된 값은 변경이 불가능하다.. (읽기만가능..)



기본적인 워밍업을 했으니.. 다음시간엔 LINQ의 중요한 몇가지 문법을 공부해 보도록 하겠습니다.























티스토리 메인/타이틀 화면에 구글 광고넣기

안녕하세요 메르세데스입니다. 이번 시간에는 티스토리 메인/타이틀 화면에 구글 애드 센스를 넣기를 해보려고 합니다.

티에디션을 이용하면.. 티스토리 블로그의 메인 화면을 꾸미실 수 있는데요... 

관리자 메뉴의 화면 설정에서 티에디션을 활성화해주시면.. 블로그 메인 화면에서 [티에디션] 아이콘이 나타나게 됩니다.



네이버 블로그의 프롤로그와 비슷한 것입니다. 블로그 메인 페이지이죠..   쉽게 꾸밀 수 있는 도구를 제공하여서 정말 좋습니다.

블로그 메인 화면에서 티에디션 버튼을 눌러보시면..  화면을 어떠한 형태로 보여줄 것이가.. 설정하는 메뉴가 나옵니다. 기존에 포스팅 되어있는 글들을 화면에 보기 좋도록 꾸밀 수 있는 메뉴인 것이죠..

화면에서 광고를 넣으려고 하는 영역을 선택하시고..  [+]버튼을 눌러 새로 생성을 할 수 있고.. 위아래로 옮길 수도 있습니다.



원하는 영역을 선택 하였다면.. 하단의 아이템부분에서 포스팅된 글들을 표시하는 타입을 선택하는 메뉴가 있는데요.. 그냥 아무거나 하나 선택 하시면 됩니다. 어차피 소스를 다 삭제하고 애드센스를 넣을 것이기 때문입니다.


선택이 완료되었다면.. 상단오른쪽의 [디자인]버튼을 누르시고.. 바로아래에.. [html]버튼을 누르세요..
그러면 제일 오른쪽 화면과 같이 소스코드가 보여지는데 이곳 영역을 전부 지우신 후 소스를 집어넣으시고 적용 버튼을 누르시면 됩니다.

그리고 화면상에는 표시가 되어있지 않지만.. 화면제일 오른쪽 상단에 [적용하기] 버튼을 누르시면됩니다.

그러면 티스토리 메인 화면에 구글 광고가 올라오게 됩니다. 

아래 보시는것 처럼.. 저는 티에디션을 통해서 위/아래로 2개 집어 넣어 적용했습니다.

역시 이것도 그렇게 어렵지 않게 적용을 하게 되었습니다.
거의 대부분은 검색을 통해서 블로그에 접근 하기 때문에 메인화면에 집어 넣은것의 효과가 크지 않을 것이라 생각 하는데요 그래도  효과의 극대화를 위해서라면.. 한번 시도는 해볼만한 것이겠죠...

이상으로 티스토리 메인/타이틀 화면에 넣는 방법을 알아봤습니다.

티스토리에 구글 광고 관련한 포스팅은 거의 정리가된 것 같네요.. ^^;

꼭 이게 아니더라도.. html태그이기 때문에 다른 것을 게재하기를 원하신다면.. 가능하지 않을까 생각이 듭니다.















티스토리 사이드바 구글광고 넣기를 알아보자..

안녕하세요 메르세데스입니다. 이번 시간에 알아 볼 것은 사이드 바에 광고를 넣는 방법입니다. 

사이드바는 계속 유지가 되어 보이는 부분이기 때문에 이곳에 게재하면 클릭률이 올라가지 않을까? 하는 기대감에 넣어 보기로 하였습니다. 네이버나 다른 사이트의 화면 구조를 보면.. 화면 중앙 상단의 메인 뿐만 아니라.. 오른쪽 약간 아랫 부분즈 음에  자주 보여지는 것 같아서..  경쟁력이 있는 위치가 아닐까 생각을 합니다.

사이드바 배너를 달기에 앞서... 관리자 메뉴에 플러그인 설정에 [배너출력] 이라는 메뉴가 추가되어 있는지 확인해보셔야 겠습니다.


티스토리 플러그인설정

배너를 추가하셨다면 본격적으로 사이드바달기를 해보겠습니다.

대개는.. 세로형이기 때문에 구글애드센스 사이트에보시면.. 내 홈페이지의 레이아웃에 맞는 사이즈를 선택하셔서 넣으셔야겠습니다.  사이드바의 가로사이즈를 확인해 보셔야겠습니다. 사용하는 테마마다 조금씩 달라서.....저 같은경우 style.css 쪽에서 폭을 확인하였습니다.  #container 로 찾아서 했습니다.

보편적인 권장크기에.. 300*600 사이즈가 큼지막하면서 마음에 들어서..^^  
권장사이즈에 맞는 다양한 종류의 광고가 올라오는것 같아서 좋은것 같습니다. 크기도 적당한것 같고요..  제가 가로형가장 큰것을 달아봤는데 빈번하게.. 설정한 사이즈보다  작은사이즈가 올라오네요.. 해당사이즈의 물주가 많이 없다는 반증이 아닐까 하네요..




광고를 생성하시고.. 코드를 복사하시고.. 관리자메뉴의 사이드바로 가시면...  HTML배너출력이라는 모듈이 하나 추가가된것이 보이실것입니다.  추가하셔서..  올리신 다음 편집을 눌러 이름과 아까 복사하였던 코드를 넣으신 후 [확인]버튼을 눌러 적용하시면되겠습니다. 캡처화면상에는 안보이지만.. 조금위에 보시면.. 오른쪽 윗부분에 [저장]버튼을 눌러야만 적용이되니 잊지마세요..


google sidebar ad

이렇게 적용을 하고나서 블로그로 돌아가보면.. 사이드바에 잘 적용이 되어 나오고 있네요..  이것을 생성하고 얼마 지나지 않았다면.. 송출이 안되고 빈화면으로 나올 수 있으나 5~10분정도 기다리시면 보이실 것입니다. 

그리고 한 화면에 구글 광고가 3개가 넘어가게되면 4번째 부터 화면에 안보이게되니 참고하여주세요..



google sidebar add



이것 역시 크게 어렵지 않은것 같네요..  이상으로 티스토리 사이드바에 구글광고 넣는 방법을 알아봤습니다. 감사합니다.
















티스토리 본문 상 하단에 구글 광고달기

안녕하세요 메르세데스입니다. 지난시간에 이어 구글애드센스 다는 것을 이어서 가려고합니다.
이번시간에 알아볼 것은... 본문 상/하단에  집어 넣는 방법입니다.   글 사이사이에 집어넣는 것은 효과에 매우 뛰어난 것이 사실인데 포스팅글이 많고 광고가 바뀔때마다 일일이 적용하는것이 귀찮고 번거로운 저같은 사람에게는 이 방법이 매우 효과적일 것이라 생각합니다.  

하지만.. 글제목과 포스팅글을 시작하는 사이라면.. 조금은 경쟁력이 있는 위치가 아닐까 하는 생각이드네요..

아래는.. 본문 상/하단에 적용한 모습입니다.  제가 워낙에 큼지막한것을 좋아해서...

뭐 본인의 입맛에 따라.. <table>태그를 이용하여.. 상단에 2개를 좌우로 배치하셔도 좋습니다.

근데 저는 적용해보니.. 간간히 같은것이 2개가 나란히 나오는 경우가 있어 보기가 안좋아서 그냥 큰거 하나 넣기로했습니다.


티스토리 상하단광고


적용하는 방법은.. 역시 마찬가지로 관리자페이지의 HTML/CSS편집의 Skin.html파일에 소스를 추가해주시면되는데요..

skin.html소스에서 ctrl + f로  article_rep_desc 라는 이름을 찾으신후.. 위/아래에  소스를 집어넣어주시면.. 위에는 본문상단에.... 아래에는 본문하단에.. 적용이됩니다.

위치는 위의 화면에서 보이는 것과같이  상단광고는.. 글제목과 본문사이에 만들어집니다.(경쟁력이 있겠죠..)     그리고 하단은.. 카테고리 하단부에 생성이됩니다. 

저 같은경우에는 글 상단/하단 그리고 사이드바에 하나 이렇게 하면.. 3개가 되기때문에 이렇게 하려고 생각을 하고 있습니다. 


티스토리 본문광고

이렇게 적용하는 방법또한 그리 어렵지 않죠.. !   이상으로 티스토리 본문 상 / 하단에 구글 광고 넣는 방법에 대해 알아봤습니다. 감사합니다.









델파이의 findcomponent를 활용하여보자

안녕하세요 메르세데스입니다. 델파이의 findcomponent를 활용하여 소스코딩하는 것을 알아보도록 하겠습니다.

말 그대로 컴포넌트를 찾는 함수라고 생각하시면되겠습니다. 각종 요소들이 컴포넌트로 되어있고 이런 컴포넌트를 찾는 함수를 활용한다면.. 반복 적인 패턴의 코딩을 획기적으로 줄일 수 있는 효율적인 함수라고 생각이 듭니다.




사실 프로그램을 하면서.. 해당하는 폼이나.. 오브젝트의 이름이 규칙적으로 증가하거나 감소한다 던 가  규칙성을 갖고 있다면..
해당 소스를 복사해서 붙여 넣는 작업을 반복 적으로 하여 프로그램 하는 경우가 많은데요.. ( 대부분은 귀찮아서 그렇죠..)

이름에 대한 규칙을 정의해서 처리할 수 있다면.. 반복문 안에 다가 마치 오브젝트 이름을 변수처럼 처리할 수 있는 방법이 가능해집니다.


procedure TForm1.TestBtn1Click(Sender: TObject);
var
 i: Integer;
const
 NamePrefix = 'MyEdit';   // myedit라는 상수를 할당
begin
 for i := 1 to 20 do begin
   TEdit.Create(Self).Name := NamePrefix + IntToStr(i);     //이름뒤에 1 , 2, 3 ,4 이런식으로 해서 TEdit컴포넌트를 생성하죠..
   with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
   begin
     Left := 10;                 //생성하면서 위치를 조정..
     Top := i * 20;
     Parent := self;   
   end;
 end;
end;


눈으로 보기에 쉽게 안 들어오실 수 있지만.. 이게 가능하지 않다면.. 폼에 에디트를 20개 찍어서 넣거나.. 아니면
create문을 20개를 반복해서 구현해야 하니.. 상당히 소스가 길어지겠죠.. 하지만 위에처럼 한다면.. 루프문안에 집어넣어 처리가 가능해지니.. 규칙만 좀 안다면.. 쉽게 코딩이 가능해지겠습니다.
TEdit(FindComponent('찾으려는이름') ) <--- 이런 식으로 컴포넌트 이름을 찾아가면 됩니다.
아래는 제가 한번 이것을 이용해서 만들어 본 것입니다.




var
 i : integer;
MyCmnt : TComponent;        // 모든 컴포넌트는 TComponent로 부터 만들어집니다.
s_TEST : TStringList;
begin
       ....... (중략)....


        s_TEST := TStringList.Create;
       s_TEST.Text := v_a_DRAIN_CTHTH_TBL[0];


        with s_TEST do
       begin
          for i:= 1 to 200 do
          begin
              MyCmnt := FindComponent('QR00'+inttostr(i));      //QR00 으로 시작하는것들을 찾아서.. 뒤에 1..2..3.. 숫자를 붙이는 패턴을 찾는다
              TQRLabel(MyCmnt ).Caption := Strings[i];            //찾아진 패턴의 컴포넌트의 Caption에 위에서 받은 리스트의 값을 입력한다.
          end;  
       end;


        .....(중략) ....


end;


뭐 10~20개야.. 그냥 복사해서 붙여 넣는 것으로 가능하다고 치겠습니다.  

하지만 200개 1000개 혹은 그 이상이 되는  되는 것을 한다고 하면..   복사해서 붙여 넣는 것이 사실 크게 어려운 일은 아니긴 합니다 만..

소스가 기하급수적으로 늘어나기 때문에 스크롤을 많이 해야 하니 눈에도 잘 안 들어 오고 복잡해 지겠죠.. 전 소스가 긴게 너무 싫습니다..


다들 잘 알고 계시는데 저만 이렇게 모르고 있었던 게 아닌가 하는 생각이 드네요 ㅜㅜ

이상으로 델파이의  findcomponent를 활용하는 방법에 대해서 알아봤습니다. 감사합니다.