hyeonk lab

블로그 이미지

hyeonk

hello world! hyeonk lab.

'visual_studio'에 해당되는 글 2건

제목 날짜
  • 클래스, 함수 설명 주석 매크로 2013.08.08
  • Visual Studio 단축키 활용하기 2013.01.21

클래스, 함수 설명 주석 매크로

visual_studio 2013. 8. 8. 11:42

참조: http://majorss.tistory.com/29

 

- 함수 주석 매크로

' Usage : 함수를 모두 선택(ex : int GetLength(char strArr[]))후 매크로 실행

 

- 클래스 주석 매크로

' Usage : 클래스 이름을 선택(ex : class MyTest : public base)후 매크로를 실행

 

 

Option Strict Off
Option Explicit Off

 

'Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports Microsoft.VisualBasic
Imports Microsoft.VisualBasic.ControlChars

 

Public Module MyModule

    Dim ParamArr() As String
    Dim previousSelection As String
    Dim completionWords As String
    Dim completionWordsIndex As Integer

 

    Function StripTabs(ByVal MyStr As String)
        ' 앞에 있는 탭 공백을 제거합니다.
        While InStr(MyStr, Microsoft.VisualBasic.ControlChars.Tab) > 1
            MyStr = Right(MyStr, Len(MyStr) - InStr(MyStr, CStr(Microsoft.VisualBasic.ControlChars.Tab)))
        End While
        StripTabs = Trim(MyStr)
    End Function

 

    Sub AddFunctionComment()
        ' 설명: 현재 선택된 C/C++ 함수 프로토타입의 주석 블록을 만듭니다.
        Dim Header, prms As String
        Dim fcName, Descr As String
        Dim iPrm, iPrmA As Integer
        Dim selection As EnvDTE.TextSelection
        Dim RetTp As String

        ' 이 파일 전체에서 DTE.ActiveDocument.Selection이
        ' DTE.ActiveDocument.Selection.Text 대신 사용됩니다. 이 둘은
        ' 동일하므로 서로 바꿔 사용할 수 있습니다. 이 둘이 같은 이유는 Text가
        ' 사용할 기본 속성으로 간주되기 때문입니다. 다른 속성 없이
        ' ActiveDocument.Selection을 사용하면 기본적으로 Text 속성이
        ' 사용됩니다.
        If (DTE.ActiveDocument Is Nothing) Then
            Exit Sub
        End If
        If DTE.ActiveDocument.Language = EnvDTE.Constants.dsCPP Or DTE.ActiveDocument.Language = "CSharp" Then

            selection = DTE.ActiveDocument.Selection()
            Trim(selection.Text)
            Header = ""

            If selection.Text <> "" Then
                Header = StripTabs(Trim(selection.Text))
            End If

            ' 함수 반환 형식을 가져옵니다.
            If Header <> "" Then
                If DTE.ActiveDocument.Language = "CSharp" Then
                    ' public/private 등과 같은 보호 정보를 건너뜁니다.
                    Header = Right(Header, Len(Header) - InStr(Header, " "))
                End If
                Reti = InStr(Header, " ")
                Loc1 = InStr(Header, "(")
                If Reti < Loc1 Then
                    RetTp = Left(Header, Loc1 - 1)
                    Header = Right(Header, Len(Header) - Reti)
                End If
                RetTp = Left(RetTp, InStr(RetTp, " "))

                ' 함수 이름을 가져옵니다.
                Loc1 = InStr(Header, "(") - 1
                Loc2 = InStr(Header, ")")

                If Loc1 > 0 And Loc2 > 0 Then ' '(' 및 ')'가 있는지 확인합니다.
                    fcName = Left(Header, Loc1)
                    Header = Right(Header, Len(Header) - Len(fcName))

                    ' 반환 형식에 저장소 형식이 있는지 여부
                    Trim(fcName)
                    If InStr(fcName, " ") <> 0 Then
                        RetTp = RetTp + Left(fcName, InStr(fcName, " "))
                        fcName = Right(fcName, Len(fcName) - InStr(fcName, " "))
                    End If

                    ' 함수 매개 변수를 가져옵니다.
                    iPrm = 0
                    iPrmA = 0
                    prms = Header

                    ' 매개 변수 개수를 계산합니다.
                    Do While InStr(prms, ",") <> 0
                        iPrm = iPrm + 1
                        prms = Right(prms, Len(prms) - InStr(prms, ","))
                    Loop

                    ' 배열에 매개 변수 목록을 저장합니다.
                    If iPrm > 0 Then ' 매개 변수가 여러 개인 경우입니다.
                        iPrm = iPrm + 1
                        iPrmA = iPrm
                        ReDim ParamArr(iPrm)
                        Do While InStr(Header, ",") <> 0
                            ParamArr(iPrm - 1) = Left(Header, InStr(Header, ",") - 1)
                            ' 첫 번째 매개 변수에서 중괄호를 제거합니다.
                            If InStr(ParamArr(iPrm - 1), " (") <> 0 Then
                                ParamArr(iPrm - 1) = Right(ParamArr(iPrm - 1), (Len(ParamArr(iPrm - 1)) - (Len(ParamArr(iPrm - 1)) - (Len(ParamArr(iPrm - 1)) - InStr(ParamArr(iPrm - 1), " (")))))
                                Trim(ParamArr(iPrm))
                            End If
                            Header = Right(Header, Len(Header) - InStr(Header, ","))
                            iPrm = iPrm - 1
                        Loop
                        ParamArr(iPrm - 1) = Header

                        ' 마지막 매개 변수에서 닫는 중괄호를 제거합니다.
                        If InStr(ParamArr(iPrm - 1), ")") <> 0 Then
                            ParamArr(iPrm - 1) = Left(ParamArr(iPrm - 1), InStr(ParamArr(iPrm - 1), ")") - 1)
                            Trim(ParamArr(iPrm - 1))
                        End If
                    Else ' 대부분 매개 변수가 하나인 경우입니다.

                        ReDim ParamArr(1)
                        Header = Right(Header, Len(Header) - 1) ' 첫 번째 중괄호를 제거합니다.
                        Trim(Header)
                        ParamArr(0) = StripTabs(Header)
                        If InStr(ParamArr(0), ")") <> 1 Then
                            ParamArr(0) = Left(ParamArr(0), InStr(ParamArr(0), ")") - 1)
                            Trim(ParamArr(0))
                            iPrmA = 1
                        End If
                    End If

                    ' 선택한 텍스트의 한 줄 위에 커서를 둡니다.
                    DTE.ActiveDocument.Selection.LineUp()
                    DTE.ActiveDocument.Selection.LineDown()
                    DTE.ActiveDocument.Selection.StartOfLine()
                    selection = DTE.ActiveDocument.Selection()
                    'selection.text = Lf

                    Descr = CStr(Lf) + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)
                    Descr = Descr + "/// @Function Name : " + fcName + CStr(Lf)
                    Descr = Descr + "/// @Description   : " + CStr(Lf)
                    Descr = Descr + "/// @Return Type   : " + RetTp + Chr(9) + "-> (설명)" + CStr(Lf)

                    ' 매개 변수 목록을 인쇄합니다.
                    Last = iPrmA
                    Do While iPrmA <> 0
                        ' 모든 argumentextSelection에서 줄 바꿈을 제거합니다.
                        If InStr(ParamArr(iPrmA - 1), CStr(Lf)) <> 0 Then
                            ParamArr(iPrmA - 1) = Right(ParamArr(iPrmA - 1), (Len(ParamArr(iPrmA - 1)) - (Len(ParamArr(iPrmA - 1)) - (Len(ParamArr(iPrmA - 1)) - InStr(ParamArr(iPrmA - 1), CStr(Lf))))))
                            Trim(ParamArr(iPrmA - 1))
                        End If
                        ParamArr(iPrmA - 1) = StripTabs(ParamArr(iPrmA - 1))
                        ' 매개 변수가 둘 이상인 경우 첫 번째 매개 변수의 앞에
                        ' '('가 붙어 있게 됩니다. 여기에서 이를 제거합니다.
                        If iPrmA = Last And Last <> 1 Then
                            ParamArr(iPrmA - 1) = Right(ParamArr(iPrmA - 1), Len(ParamArr(iPrmA - 1)) - 1)
                        End If
                        Descr = Descr + "/// @Parameter     : " + ParamArr(iPrmA - 1) + Chr(9) + "-> (설명)" + CStr(Lf)
                        iPrmA = iPrmA - 1
                    Loop
                    Descr = Descr + "/// @Author        : Seung Hyeon Kim" + CStr(Lf)
                    selection = DTE.ActiveDocument.Selection()
                    selection.Text = Descr
                Else
                    MsgBox("It is possible that the function you are trying to work with has a syntax error.")
                End If
            End If
        Else
            MsgBox("You need to have an active C/C++ document open" + CStr(Lf) + "with the function prototype selected.")
        End If
    End Sub

 

    Sub AddSimpleFunctionComment()
        ' 설명: 현재 선택된 C/C++ 함수 프로토타입의 기능설명 주석 블록을 만듭니다.
        Dim selection As EnvDTE.TextSelection

        ' 선택한 텍스트의 한 줄 위에 커서를 둡니다.
        DTE.ActiveDocument.Selection.LineUp()
        DTE.ActiveDocument.Selection.LineDown()
        DTE.ActiveDocument.Selection.StartOfLine()
        selection = DTE.ActiveDocument.Selection()

        Descr = CStr(Lf) + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)
        Descr = Descr + "/// @기능설명  : " + CStr(Lf)
        Descr = Descr + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)

        selection = DTE.ActiveDocument.Selection()
        selection.Text = Descr
    End Sub

 

    Sub AddClassComment()
        ' 설명: 현재 선택된 C/C++ 함수 프로토타입의 주석 블록을 만듭니다.
        Dim CName As String
        Dim selection As EnvDTE.TextSelection

        ' 이 파일 전체에서 DTE.ActiveDocument.Selection이
        ' DTE.ActiveDocument.Selection.Text 대신 사용됩니다. 이 둘은
        ' 동일하므로 서로 바꿔 사용할 수 있습니다. 이 둘이 같은 이유는 Text가
        ' 사용할 기본 속성으로 간주되기 때문입니다. 다른 속성 없이
        ' ActiveDocument.Selection을 사용하면 기본적으로 Text 속성이
        ' 사용됩니다.
        If (DTE.ActiveDocument Is Nothing) Then
            Exit Sub
        End If
        If DTE.ActiveDocument.Language = EnvDTE.Constants.dsCPP Or DTE.ActiveDocument.Language = "CSharp" Then

            selection = DTE.ActiveDocument.Selection()
            Trim(selection.Text)

            CName = StripTabs(Trim(selection.Text))

            ' 선택한 텍스트의 한 줄 위에 커서를 둡니다.
            DTE.ActiveDocument.Selection.LineUp()
            DTE.ActiveDocument.Selection.LineDown()
            DTE.ActiveDocument.Selection.StartOfLine()

            Descr = CStr(Lf) + "//////////////////////////////////////////////////////////////////////////" + CStr(Lf)
            'Descr = Descr + "/**" + CStr(Lf)
            Descr = Descr + "/// @Class Name    : " + CName + CStr(Lf)
            Descr = Descr + "/// @Description   : " + CStr(Lf)
            Descr = Descr + "/// @Author        : Seung Hyeon Kim" + CStr(Lf)
            Descr = Descr + "/// @Warning       : " + CStr(Lf)
            Descr = Descr + "/// @Date          : " + System.DateTime.Now.ToShortDateString() + CStr(Lf)
            'Descr = Descr + "*/" + CStr(Lf)

            selection = DTE.ActiveDocument.Selection()
            selection.Text = Descr
        Else
            MsgBox("It is possible that the class you are trying to work with has a syntax error.")
        End If
    End Sub


End Module

 

저작자표시 (새창열림)

'visual_studio' 카테고리의 다른 글

Visual Studio 단축키 활용하기  (0) 2013.01.21
Posted by hyeonk

Visual Studio 단축키 활용하기

visual_studio 2013. 1. 21. 10:26

편집 관련 단축키

편집 관련 단축키들은 익혀두면 다른 문서를 작성 할때도 많이 도움이 될 것이다.

문서 편집 관련 단축키들은 사용하면 사용할 수록 코딩 속도가 빨라진다.

Ctrl + F : 찾기

중요도 : ★★★☆☆

활용 : 특정 클래스, 함수, 변수 등을 검색한다.

Ctrl + Shift + F : 파일에서 찾기

중요도 : ★☆☆☆☆

활용 : 특정 클래스, 함수, 변수 등을 검색한다. 현제 프로젝트가 아닌 파일에서도 찾을 수 있다.

Ctrl + Space : NameSpace

중요도 : ★★★★★

활용 : 현재 접근 가능한 클래스명, 함수명, DEFINE문 등의 목록을 보여준다.

코드를 치는 도중 Ctrl + Space를 누르면 이전에 선언된 것과

가까운 목록을 보여주며 선택을 함으로써 쉽게 완성이 가능하다.

목록이 하나뿐이라면 그것으로 자동 완성 해준다.

Ctrl + Shift + Space : Parameter

중요도 : ★★★★★

활용 : 커서가 클래스명의 뒤에 있을 때 접근가능한 변수, 함수 목록을 보여준다.

코드를 치는 도중 Ctrl + Shift + Space를 누르면 이전에 선언된 것과

가까운 목록을 보여주며 선택을 함으로써 쉽게 완성이 가능하다.

목록이 하나뿐이라면 그것으로 자동 완성 해준다.

Home : 커서가 위치한 줄의 코드 시작 위치로

중요도 : ★★★★★

활용 : 커서의 위치와 관계없이 해당 줄의 코드 시작위치로 커서를 옮긴다.

블록을 잡기 위해서, 커서의 빠른 이동 등에 많이 사용된다.

End : 커서가 위치한 줄의 코드 끝 위치로

중요도 : ★★★★★

활용 : 커서의 위치와 관계없이 해당 줄의 코드 마지막위치로 커서를 옮긴다.

Shift + Home : 커서가 위치한 줄 모두 블록

Shift + End : 커서가 위치한 줄 모두 블록

중요도 : ★★★★★

활용 : 커서 위치가 가장 앞에 있다면 Shift + End를 이용해 그 줄을 블록하고

커서 위치가 가장 뒤에 있다면 Shift + Home를 이용해 그 줄을 블록한다.

Shift + ← or → or ↑ or ↓ : 블록 잡기

중요도 : ★★★★☆

활용 : 여러 줄을 블록할 때 많이 사용한다.

드래그 + Alt : 현재 커서 위치부터 움직인 커서 위치까지 블록

중요도 : ★★★★☆

활용 : 마우스 드래그 중 Alt를 누르면 드래그하는 영역을 사각형으로 봤을 때 그 영역을 블록하게 된다.

특정 부분을 선택하고 싶거나, 탭을 먹이고 싶을 때 많이 사용된다.

Ctrl + ←, → : 구분단위로 커서 이동

중요도 : ★☆☆☆☆

활용 : 현재 줄에서 커서를 좌우로 이동할 때 변수, 공백, 탭, 등의 구분단위로 이동하게된다.

보다 빠른 커서위치를 조정하고, 블록할 때 사용된다.

Ctrl + Shift + ← or → : 구분단위로 블록

중요도 : ★☆☆☆☆

활용 : 현재 줄에서 블록을 할 때 변수, 공백, 탭 등의 구분단위로 블록영역을 설정한다.

보다 빠르게 블록 영역을 설정할 때 편리하다.

Ctrl + M, L : 전체 + 버튼으로 만들기

중요도 : ★★★☆☆

활용 : 현재 소스 전체를 {}영역 별로 +버튼으로 만들어준다.

+버튼은 소스가 삭제되는 것은아니라 감춰두는 것으로 볼 수 있다.

소스가 길어 함수 정의나 클래스 정의 부분을 빨리 찾고 싶을 때 많이 사용된다.

Ctrl + M, M : 커서 위치가 속한 곳을 + 버튼으로 만들기

중요도 : ★★☆☆☆

활용 : 커서의 위치를 {}단위로 판단하여 커서가 속한 곳을 +버튼으로 만든다.

Ctrl + M, L : 선택된 곳을 +버튼으로 만들기

중요도 : ★★☆☆☆

활용 : 블록을 선택된 영역을 +버튼으로 만든다.

Shift + Delete : 커서가 위치한 줄 삭제

중요도 : ★★★★☆

활용 : 커서가 위치한 줄을 삭제한다.

빠르게 현재 줄을 삭제할 때 많이 활용된다.

Ctrl + L : 커서가 위치한 줄 삭제, 선택된 줄단위로 삭제

중요도 : ★★★★☆

활용 : 위 단축키와 비슷하지만 영역을 선택했을 때 여러줄을 줄단위로 삭제 한다.

Ctrl + K, C : 선택 영역 주석 달기

중요도 : ★★★★☆

활용 : 선택 영역의 주석을 한 단계씩 추가한다.

Ctrl + K, U : 선택 영역 주석 없애기

중요도 : ★★★★☆

활용 : 선택 영역을 주석을 한 단계씩 감소시킨다.

Alt + F8 : 선택 영역 코드 탭 정리하기

중요도 : ★★★★☆

활용 : 선택한 영역의 코드들의 탭이 뒤죽박죽일 때 사용하면 편리하다.

디버깅 관련 단축키

F7 : 빌드

중요도 : ★★★☆☆

활용 : 이번 빌드 상태와 비교하여 수정된 소스에 대해 다시 빌드한다.

Ctrl + Alt + F7 : 전체 다시 빌드

중요도 : ★★★☆☆

활용 : 현재 솔루션 전체를 다시 빌드한다. 링크가 꼬엿을 때 외엔 잘 사용하지 않는다.

F5 : 빌드 + 실행

중요도 : ★★★★★

활용 : F7을 누른후 실행한 결과와 같다.

Ctrl + F5 : 빌드 없이 실행

중요도 : ★☆☆☆☆

활용 : 최근에 빌드된 상태의 실행 파일을 실행시킨다.

소스 수정없이 다시 실행 시키고 싶을 때 빌드 시간 없이 실행 하므로 빠르다

F9 : 브레이크 포인트 설정

중요도 : ★★★★★

활용 : 현재 커서가 위치한 줄에 중단점을 설정한다.

중단점이 걸리면 디버그시 해당 코드를 실행하기전에 중지되어 사용자에게 코드 위치를 보여준다.

F10 : 줄단위 실행

중요도 : ★★★★★

활용 : 디버깅 모드에서 현재 디버깅하고있는 소스의 줄단위로 진행 시킨다.

F11 : 코드 단위 실행

중요도 : ★★★★★

활용 : 디버깅 모드에서 현재 진행중인 커서위치의 코드를 실행한다.

커서위치의 코드내에 함수가 있다면 그 함수의 내부로 들어가게 된다.

F12 : 정의로 이동

중요도 : ★★★★★

활용 : 변수, 함수, 클래스 등의 선언부로 이동한다.

눈에 보이는 변수, 함수 등의 정체를 확인하는데 많이 사용된다.

Ctrl + '-'키 : 이전 커서 위치로

중요도 : ★★★★★

활용 : 이전 커서위치로 이동하게 된다.

보통 F12로 변수를 탐색한후, 다시 돌아오는데 많이 사용한다.

Ctrl + Shift + '-'키 : 다음 커서 위치로

중요도 : ★☆☆☆☆

활용 : 위의 단축키와 반대 되는 개념이다.

Ctrl + F2 : 커서가 위치한 줄에 책갈피 설정

중요도 : ★★★☆☆

활용 : 현재 문서에서 커서가 위치한 줄에 책갈피를 설정한다.

책갈피는 관심있는 코드를 메모해놓고 쉽게 접근하기 위해 사용한다.

F2 : 다음 설정된 책갈피로 커서 이동

중요도 : ★★★☆☆

활용 : 현재 문서에서 설정된 책갈피가 있을 때 순차적으로 책갈피를 탐색한다.

Ctrl + Shift + F2 : 설정된 책갈피 모두 삭제

중요도 : ★★★☆☆

활용 : 현재 문서에 설정되어 있는 책갈피를 모두 삭제한다.

Ctrl + F10 : 커서 위치까지 실행

중요도 : ★★☆☆☆

활용 : 현재 커서가 위치한 곳까지 실행하게 된다.

편집상태라면 빌드 + 커서 위치까지 실행된다.

한손으로 누르기 힘든 단축키라 우클릭 메뉴를 이용해도 좋다.

기타

마우스 우클릭 - Find All Refrence : 모든참조 찾기

중요도 : ★★★★☆

활용 : 현재 커서가 위치한곳의 변수나 함수등이 사용된 곳을 프로잭트에서 모두 찾아 표시한다.

LifeCycle 을 알아보는데도 좋다.

Alt + P + P : 프로젝트 속성

중요도 : ★☆☆☆☆

활용 : 프로젝트의 속성을 본다. 프로젝트 속성을 보는일은 많이 없으므로 큰 활용도는 없다.

마지막으로 지금까지 단축키 목록을 나열하겠다.

Ctrl + F : 찾기

Ctrl + Shift + F : 파일에서 찾기

Ctrl + Space : NameSpace

Ctrl + Shift + Space : Parameter

Home : 커서가 위치한 줄의 코드 시작 위치로

End : 커서가 위치한 줄의 코드 끝 위치로

Shift + Home : 커서가 위치한 줄 모두 블록

Shift + End : 커서가 위치한 줄 모두 블록

Shift + ← or → or ↑ or ↓ : 블록 잡기

드래그 + Alt : 현재 커서 위치부터 움직인 커서 위치까지 블록

Ctrl + ←, → : 구분단위로 커서 이동

Ctrl + Shift + ← or → : 구분단위로 블록

Ctrl + M, L : 전체 + 버튼으로 만들기

Ctrl + M, M : 커서 위치가 속한 곳을 + 버튼으로 만들기

Ctrl + M, L : 선택된 곳을 +버튼으로 만들기

Shift + Delete : 커서가 위치한 줄 삭제

Ctrl + L : 커서가 위치한 줄 삭제, 선택된 줄단위로 삭제

Ctrl + K, C : 선택 영역 주석 달기

Ctrl + K, U : 선택 영역 주석 없애기

F7 : 빌드

Ctrl + Alt + F7 : 전체 다시 빌드

F5 : 빌드 + 실행

Ctrl + F5 : 빌드 없이 실행

F9 : 브레이크 포인트 설정

F10 : 줄단위 실행

F11 : 코드 단위 실행

F12 : 정의로 이동

Ctrl + '-'키 : 이전 커서 위치로

Ctrl + Shift + '-'키 : 다음 커서 위치로

Ctrl + F2 : 커서가 위치한 줄에 책갈피 설정

F2 : 다음 설정된 책갈피로 커서 이동

Ctrl + Shift + F2 : 설정된 책갈피 모두 삭제

Ctrl + F10 : 커서 위치까지 실행

Alt + F8 : 선택 영역 코드 탭 정리하기

마우스 우클릭 - Find All Refrence : 모든참조 찾기

Alt + P + P : 프로젝트 속성

 

추가정보: 정렬할 라인들 드래그 하고 -> Ctrl + K  -> Ctrl+ F 누름 : 정렬 단축키.

 

  • [출처] Visual Studio 단축키 활용하기 (HGC 홍익대학교 게임학부 개발자) |작성자 돌돌이

'visual_studio' 카테고리의 다른 글

클래스, 함수 설명 주석 매크로  (0) 2013.08.08
Posted by hyeonk
이전페이지 다음페이지
블로그 이미지

hello world! hyeonk lab.

by hyeonk

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

글 보관함

«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

링크

카테고리

전체 (44)
ios (1)
mfc & winAPI (17)
c & c++ (4)
java (1)
eclipse (1)
visual_studio (2)
javascript (3)
asp (1)
oracle (3)
개발이야기 (5)
윈도우 일반 (2)
etc (2)
reference (2)
personal_reference (0)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
hyeonk's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

hyeonk lab

hello world! hyeonk lab.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 전체 (44)
    • ios (1)
    • mfc & winAPI (17)
    • c & c++ (4)
    • java (1)
    • eclipse (1)
    • visual_studio (2)
    • javascript (3)
    • asp (1)
    • oracle (3)
    • 개발이야기 (5)
    • 윈도우 일반 (2)
    • etc (2)
    • reference (2)
    • personal_reference (0)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바