Post

dhcp 란 ? ip, 네임 서버, 게이트웨이 자동으로 할당해주는 프로토콜 ( Dynamic Host Configuration Protocol )
dhcp 서버가 꺼지면 그 이전에 ip할당받은 컴퓨터는 사용가능하지만
ip 할당받지 못한 컴퓨터(늦게 접속한 컴퓨터)는 서버 접속이 안된다.

Post

프로토콜이란? 두 컴퓨터가 통신을 위해 정한 규약.
프로토콜의 3가지 요소
구문 : 데이터 구조나 포맷 ( 앞에서부터 4비트까지는 주소.. 그 후 8비트는 데이터.. 이런식으로 어떤정보를 포함하는지)
의미 : 전송되는 데이터의 각 부분이 무엇을 뜻하는지 알 수 있게 미리 정해둔 규칙 ( 앞에서 부터 4비트가 1111일 때 어떤의미인지)
순서

프로토콜의 기능
종류별로 제공하는 기능이 다르지만, 공통적으로 다음과 같은 것을 제공
주소설정, 순서제어, 데이터 대열의 단편화 및 재조합, 캡슐화 등등..

SSL Protocol ? 서버와 클라이언트가 보안을 위해 사용하느 프로토콜.
ICMP Protocol ? 인터넷 제어 메시지 프로토콜.
QUIC Protocol ? 크롬이 사용하는 프로토콜.



Route

내 Pc Route 확인

cmd창에서 rount PRINT

활설경로 (NetworkDestination)이 0.0.0.0일 경우 

라우팅 테이블에서 직접 구체적으로 지정한 주소 외의 모든 목적지 주소는 인터페이스를 통해 게이트웨이 주소로 보내라는 의미.


Route 라인 동작 실험

cmd창에서 tracert 200.200.200.200 ICMP 프로토콜로 패킷 전송



Post

C3867 비표준 구문입니다. &를 사용하여 멤버 포인터를 만드세요

함수 호출하는데 () 괄호를 안넣음.

괄호넣으니 해결

Post

using System.Collections;

using System.Collections.Generic;

using UnityEngine;


//public class NewBehaviourScript : MonoBehaviour {


    public class MoveScript : MonoBehaviour

    {

        public float moveSpeed = 2.0f;


        public float rotSpeed = 2.0f;


        Vector3 posTarget;




        void Awake()


        {


            //moveSpeed = 10.0f;


            posTarget = new Vector3();


        }




        // Use this for initialization


        void Start()


        {


            posTarget = transform.position;


        }




        // Update is called once per frame


        void Update()


        {


            // 느린컴퓨터는 Update에 느리게 들어오고 빠른컴퓨터는 빠르다...속도를 동일하게 하기위해


            // 시간계념이 필요함 (deltaTime)




            bool trans = false;


            if (trans)


            {


                float mx = Input.GetAxis("Horizontal"); // -1 ~ 1;


                transform.Rotate(Vector3.up * mx * Time.deltaTime * rotSpeed);


            }


            else


            {




                float mz = Input.GetAxis("Vertical"); // -1 ~ 1;


                float mx = Input.GetAxis("Horizontal"); // -1 ~ 1;




                Vector3 v = new Vector3(mx, 0, mz);


                v.Normalize(); // 원본 변경


                //v.Normalized(); // 원본 변경x


                transform.Translate(v * Time.deltaTime * moveSpeed);




                transform.Rotate(Vector3.up * mx * Time.deltaTime * rotSpeed);


                //transform.Translate(Vector3.forward * mz * Time.deltaTime * moveSpeed);


                //transform.Translate(Vector3.right * mx * Time.deltaTime * moveSpeed);




                // 마우스로 좌표찍어서 이동


                if (Input.GetButtonDown("Fire1"))


                {


                    Ray r = Camera.main.ScreenPointToRay(Input.mousePosition);


                    RaycastHit hit;


                    if (Physics.Raycast(r, out hit))


                    {


                        posTarget = hit.point;


                        Debug.Log(hit.transform.gameObject);


                        // 방향을 돌린다


                        //transform.LookAt (new Vector3(posTarget.x, 0, 0));


                        //transform.LookAt (posTarget);


                    }


                }




            }


            // 선형보간 이동


            //transform.position = Vector3.Lerp (transform.position, posTarget, Time.deltaTime * moveSpeed);


            // 정규속도로 가기


            if (Vector3.Distance(transform.position, posTarget) >= 0.1f)


            {


                Vector3 dir = posTarget - transform.position;


                // 부드럽게 방향 돌림


                // 나의 앞 방향과 목표 방향과 normallize해서 어느정도 이동해야하는지 결과값이 나옴


                Vector3 look = Vector3.Slerp(transform.forward, dir.normalized, Time.deltaTime * rotSpeed);


                // up y축 회전


                transform.rotation = Quaternion.LookRotation(look, Vector3.up);


                transform.position = Vector3.MoveTowards(transform.position, posTarget, Time.deltaTime * moveSpeed);

            }


        }




        void OnGUI()

        {


            // 방향키 앞뒤 누를 시 -1 ~ 1의 을 출력


            GUI.Label(new Rect(0, 0, 150, 40), Input.GetAxis("Vertical").ToString());


        }


    }

//}



'이전게시판 > Unity' 카테고리의 다른 글

유니티 2D충돌체크, 코루틴  (0) 2018.04.29
유니티 스프라이트2D  (0) 2018.04.28
유니티 네비게이션, 파티클  (0) 2018.04.22
총알 만들고 쏘기(Prepfeb)  (0) 2018.04.21
Unity 기초 정리  (0) 2018.04.14
유니티 C# Scene 변경  (0) 2018.04.14
UGUI 캔버스, UI 정리  (0) 2017.10.11
유니티 UGUI 버튼 예제  (0) 2017.10.08

Post

[ 유니티 창 설명 ]

Componet : 기능을 넣어주는 것 ( 스크립트, Mesh 등 ... )

Game창에서 해상도 설정 가능 ( Portain 가로 , Landscap 세로 )

+ 누르면 해상도 지정 가능(Fixed Rsolution ), 종횡비(Aspect Resolution)

Hiarchy : Scene에 있는 작업물 ( Scene에서 보이는 것들 )

Project : Project의 모든 작업물 객체 모음

Inspect : 정보와 수정을 담당

States => 작업상황 (퍼포먼스 확인)


[ 안드로이드 빌드 시 필요한 것 ]

SDK, JDK, 때때로 NDK 설치 Extern Tool 에서 설치 위치 설정할 수 있음.


[에셋 가져오기, 불러오기]

Asset - Item to Export => 에셋 단위로 묶을 수 있음.

가져오기는 마우스 드래그로 가져오기 가능


[ Object 이동 ]

Object생성 시 반드시 reset할 것 (위치 초기화 필요)

X, Y, Z는 꼬치구이 돌리는 것 처럼 생각할 것


Q : 화면 움직이기

W : 이동

E : 회전

R : 늘리기, 줄이기

T : 2D에만 쓰임


Pivot :  두개 이상 모체 선택 시 처음 선택한 오브젝트 중심으로 이동, 회전

Global과 Local : Local말고 Global로 World 좌표계 사용하고 싶을 때 사용.



[ ProjectSetting ]

유니티에서 mouse 0 => left 1 => right 2 => 휠


[ 2D ]

2d스프라이트 SortLayer, Order in Layer 사용법 :숫자가 낮을수록 먼저 그림(맨 뒤로 가게됨)

Flip는 x, y 를 체크해서 방향을 바꾸면 방향축이 안바뀜(그냥 Y축 회전하면 방향이 바뀌게 된다)

Post

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneCtrl_Test : MonoBehaviour {
// Use this for initializatio
void Start () {


}
// Update is called once per frame
void Update () {
}
void OnGUI()
{
if (GUI.Button (new Rect (0, 0, 100, 30), "Scene 이동"))
{
// TestScene으로 이동
//SceneManager.LoadScene ("OneDayScene");
// TestSceen 붙이기
SceneManager.LoadSceneAsync("TestScene", LoadSceneMode.Additive);
}
}
}

1. 메뉴에서 File -Build Scene 선택. Scene을 넣어줌(마우스 드래그)
2. Script를 만들어서 위와 같이 작성
3. 빈 Object를 생성해 스크립트를 넣음
4. 실행하면 멀티뷰(주석은 TestScene으로 이동)가 됨.


Post

네이버 뉴스 크롤링


package Ex;


import java.io.IOException;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import org.jsoup.nodes.Element;


public class ExR {

// static String BASE_URL_F = "URL="; // 페이지 나오기 전 "="까지 복사해서 붙여넣음

// static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

// static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

// static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소


static String BASE_URL_F = "https://search.naver.com/search.naver?where=nexearch&sm=tab_htk.nws&ie=utf8&query=%EC%84%9C%ED%95%B4+%EA%B5%B0+%ED%86%B5%EC%8B%A0%EC%84%A0+%EB%B3%B5%EC%9B%90\r\n";

static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소



public static void main(String[] args) throws IOException

{

// 뉴스 URL

Document doc = Jsoup.connect("http://news.naver.com/main/hotissue/read.nhn?mid=hot&sid1=100&cid=1049580&iid=36776687&oid=001&aid=0009801535&ptype=052").get();

//System.out.println(doc); 

// 개발자도구 F12를 눌러서 본문을 찾는다. 만약 id라면 id=대신#, class= 라면 class대신.이다.

Elements body = doc.select("div#articleBodyContents");

System.out.println(body);

}

}


text 글 정제하기, 타이틀 가져오기


package Ex;


import java.io.IOException;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import org.jsoup.nodes.Element;


public class ExR {

// static String BASE_URL_F = "URL="; // 페이지 나오기 전 "="까지 복사해서 붙여넣음

// static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

// static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

// static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소


static String BASE_URL_F = "https://search.naver.com/search.naver?where=nexearch&sm=tab_htk.nws&ie=utf8&query=%EC%84%9C%ED%95%B4+%EA%B5%B0+%ED%86%B5%EC%8B%A0%EC%84%A0+%EB%B3%B5%EC%9B%90\r\n";

static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소



public static void main(String[] args) throws IOException

{

//URL 연결

Document doc = Jsoup.connect("http://news.naver.com/main/hotissue/read.nhn?mid=hot&sid1=100&cid=1049580&iid=36776687&oid=001&aid=0009801535&ptype=052").get();

// 제목

Elements title = doc.select("h3#articleTitle");

String strTitle = title.text();

System.out.println(strTitle);

// 본문

Elements body = doc.select("div#articleBodyContents");

String str = body.text(); // 텍스트만 가져온다

System.out.println(str);

}

}



Post

1. R설치

R이란? 오픈소스로 통계, 데이터 시각화를 위한 언어

다운로드 URL : https://www.r-project.org/


2. R스튜디오 설치

R스튜디오란? 운영체제 환경에 상관없이 보편적으로 활용할 수 있는 오픈소스에 기반한 R관련 툴.

다운로드 URL : https://www.rstudio.com/


한국어 설정을 위한 기본 설정

Tools - Global Option - Code - Saving

Default text encoding 에서 UTF-8 을 선택하고 OK


3. Java 설치

다운로드 URL : http://www.oracle.com/technetwork/java/index.html


JDK 설치된 후 파일 경로

C:\Program Files\Java\jdk1.9.0_111

C:\Program Files\Java\jre8

C:\Program Fies (x86)\Java\jre8


Java 환경 변수 설정

제어판 - 시스템 - 시스템속성 - 고급 - 환경변수

시스템 변수를 새로만들기 클릭


* 폴더가 실제 있는지 확인할 것

변수이름 : CLASSPATH

변수 값 :  %classpath%;.


변수이름 : JAVA_HOME

변수 값 : C:\Program Files\Java\jdk-9.0.1


변수이름 : path

변수 값 : C:\Program Files\Java\jdk-9.0.1\bin


환경변수 잘 적용되었는지 확인(cmd 창에서 아래와 같이 친다)

java -version

java

javac


3개의 명령어가 잘 동작한다면 환경변수 설정이 잘 된것.

안된다면 다시 환경변수를 설정할 것.


4. 이클립스 설치

다운로드 URL : https://www.eclipse.org/


설치 후 Project , Packege, Class 순으로 생성한다.

Class 안에다가 소스를 넣으면 된다.



5. JSOUP 설치

HTML 형식의 STRING을 넘겨주면 자바에서 사용할 수 있는 DOM 객체로 만들어주는 라이브러리

(JSON 비슷한듯?)

다운로드 URL : https://jsoup.org/


설치 후 Project에서 오른쪽클릭으로 Preperties - Java Build Path - Libraries 에서 Add External JARs...클릭

그리고 나서 방금 다운받은 jar 파일을 클릭하고 확인.

그러면 라이브러리라 프로젝트 솔루션 창에 추가되어있다.


JSPOUP를 사용하기 위해 IMPORT 추가한다.



import java.io.IOException;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import org.jsoup.nodes.Element;




Post

[영어기초문법] 현재시제 동사, be동사 과거(was, were)

  • 현재 시제 동사
    1. 현재진행 시제로 쓰지 않고 현재 시제로 쓰는 동사.
    2. 다음과 같은 동사는 ing가 아니라 현재 시제로 쓴다.
      want, love, prefer, know, agree, remember
      need, like, hate, believe, understand, forget
    3. have가 가지고 있다는 의미일 땐 현재 시제.
    4. have가 먹다는 의미일 땐 현재 시제, 현재 진행 시제 둘 다 쓸 수 있다.
  • be 동사 과거 시제
    1. ( I / he / she / it ) was
    2. ( we / they / you ) were
  • be 동사 과거 시제 부정문
    1. ( I / he / she / it ) was not / wasn’t
    2. ( we / they / you ) were not / weren’t
  • be 동사 과거 시제 의문문
    1. was ( I / he / she / it )
    2. were ( we / they / you )


Post

Grammar Gateway Basic


현재 시제 부정

1)  I, You, We, They /  don't      / 동사원형

2) He, She, It         /   doesn't   / 동사원형


현재 시제 의문문

1)  do / I, You, We, They / 동사원형

2)  does /   He, She, It    / 동사원형


현재 시제 현재 진행형의 차이
- 현재 시제는 일반적으로 일어나는 일, 주기적으로 일어나는 일을 뜻함
- be 동사(am, are => do / is => does)
- 동사의 형태
- 현재 진행형일 땐 ing
- 현재 시제, 현재 시제 의문문일 땐 반드시 동사 원형
- 3인칭이라서 동사뒤에 s, es가 붙는지


▲ top