'Hoya 개발자 이야기'에 해당되는 글 100건

  1. 2016.06.05 lambda expression
  2. 2016.06.05 공변성, 반공변성
  3. 2016.06.03 FULL TEXT SEARCH (전문검색) 명령어
  4. 2016.05.22 XCode 단축키
  5. 2016.05.20 0. 공부 준비물
  6. 2016.05.20 10 문법을 마무리하며..
  7. 2016.05.20 9. Optional Value
  8. 2016.05.20 8. struct
  9. 2016.05.20 7. class
  10. 2016.05.20 6. Functions

lambda expression

.NET 개발/C# 2016. 6. 5. 15:36

식 트리가 데이터의 컬렉션이며 반복처리를 거쳐 다른 형태의 자료로 변환 할 수 있다는 점이 중요하다.

식 트리를 자기 기술적 문자열로 변환해서 다른 질의 언어로 변환하는 것도 얼마든지 가능하다.




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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
class Program
    {
        static void Main(string[] args)
        {
            Expression<Func<intintbool>> expression;
 
            expression = (x, y) => x > y;
 
            Console.WriteLine("--------------{0}---------------",expression);
 
            PrintNode(expression.Body, 0);
 
            Console.WriteLine();
            Console.WriteLine();
 
            expression = (x, y) => x * y > x + y;
 
            Console.WriteLine("--------------{0}---------------", expression);
 
            PrintNode(expression.Body, 0);
 
            Console.WriteLine();
            Console.WriteLine();
        }
 
        private static void PrintNode(Expression expression, int indent)
        {
            if (expression is BinaryExpression)
                PrintNode(expression as BinaryExpression, indent);
            else
                PrintSingle(expression, indent);
        }
 
        private static void PrintNode(BinaryExpression expression, int indent)
        {
            PrintNode(expression.Left, indent + 1);
            PrintSingle(expression, indent);
            PrintNode(expression.Right, indent + 1);
 
 
        }
 
        private static void PrintSingle(Expression expression, int indent)
        {
            Console.WriteLine("{0," + indent * 5 + "}{1}""", NodeToString(expression));
        }
 
        private static string NodeToString(Expression expression)
        {
            switch (expression.NodeType)
            {
                case ExpressionType.Multiply:
                    return  "*";
                case ExpressionType.Add:
                    return "+";
                case ExpressionType.Divide:
                    return "/";
                case ExpressionType.Subtract:
                    return "-";
                case ExpressionType.GreaterThan:
                    return ">";
                case ExpressionType.LessThan:
                    return "<";
                default : return expression.ToString() + " (" + expression.NodeType.ToString() + ")";
            }
        }
    }
cs


'.NET 개발 > C#' 카테고리의 다른 글

C#의 발전 내용  (0) 2016.06.06
대리자와 람다 식  (0) 2016.06.05
공변성, 반공변성  (0) 2016.06.05
Xaml web browser application .xbap 캐시 지우기  (0) 2015.12.21
WebSecurity 클래스  (0) 2015.12.03
Posted by Hoya0415
,
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
32
33
34
35
36
37
38
39
40
41
42
43
44
  class Program
    {
        static void Main(string[] args)
        {
            //반공변성 
            Action<object> broadAction = (object data) =>
            {
                Console.WriteLine(data);
            };
 
            Action<string> narrowAction = broadAction;
 
            // 공변성
            Func<string> narrowFunction = () => Console.ReadLine();
 
            Func<object> broadFunction = narrowFunction;
 
            
            //반공변성과 공변성 조합
 
            Func<objectstring> func1 = (object data) => data.ToString();
            Func<stringobject> func2 = func1;
 
            var items = new string[] { "Moe""Larry""Curly" };
            var actions = new List<Action>();
             
            for (int i = 0; i < items.Count(); i++)
            {
                int j = i;
                Console.WriteLine(items[j]);
                actions.Add(() => { Console.WriteLine(items[j]); });
            }
            //foreach (string item in items)
            //{
            //    actions.Add(() => { Console.WriteLine(item); });
            //}
 
            foreach (Action action in actions)
            {
                action();
            }
 
        }
    }
cs


'.NET 개발 > C#' 카테고리의 다른 글

대리자와 람다 식  (0) 2016.06.05
lambda expression  (0) 2016.06.05
Xaml web browser application .xbap 캐시 지우기  (0) 2015.12.21
WebSecurity 클래스  (0) 2015.12.03
NamedPipeClientStream 에러 : System.UnauthorizedAccessException  (0) 2015.11.17
Posted by Hoya0415
,

Full text Search (전문검색) 을 구현하려면 우선 이론적으로 알아야하고, 관리방법도 익혀야하며 효율적으로 명령을 내려야 운영 DB에 이상없이 적용이 되고, 운용 DB의 Schema가 바뀌는 상황이 생겨도 재빠른 대처를 할 수 있다. 


명령어들을 나열했고 추가적으로 업데이트를 할 생각이에요. 보시고 부족한 부분 있으면 댓글로 남겨주시면 참고하겠습니다.^^


FULL TEXT SEARCH 개발 순서

1. Create a full-text catalog, if necessary.

2. Create the full-text index.

3. Modify the list of noise words (SQL Server 2005) or stop words (SQL Server 2008), if necessary.

4. Modify the thesaurus for the language being used, if necessary.


1. FULL-TEXT Catalog 생성

CREATE FULLTEXT CATALOG [CataLogName] AS DEFAULT;


1.1 Catalog 확인

SELECT * FROM sys.FullText_Catalogs


2.  FULL-TEXT INDEX 생성

2.1)CREATE FULLTEXT INDEX ON [테이블]

([필드], [필드] LANGUAGE 1042)

KEY INDEX [인덱스 키]

ON [카탈로그 명]

WITH STOPLIST = SYSTEM

2.2))CREATE FULLTEXT INDEX [INDEXKEYNAME] ON[테이블]([필드]); 

  CREATE FULLTEXT INDEX ON  [테이블]([필드]) KEY INDEX [INDEXKEYNAME] ON [Catalog];


3. index 생성 시 language 설정하기 위해 리스트 보기.

SELECT * FROM sys.fulltext_languages

ORDER BY lcid

[Korea 1042]


3. Start population

ALTER FULLTEXT INDEX ON SalesLT.ProductDescription ENABLE; 

GO 

ALTER FULLTEXT INDEX ON SalesLT.ProductCategory START FULL POPULATION;


4. Monitor full-text search 활성화

SELECT * FROM sys.dm_fts_index_population


5. 채우기 상태 모니터링

SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'SalesLT.ProductCategory');


6. 인덱스 내용 정보 반환

SELECT * FROM sys.dm_fts_index_keywords( DB_ID('AdventureWorksLT'), OBJECT_ID('SalesLT.ProductCategory'))


7. CONTAINSTABLE 가중치(RANK) 이용해서 각 단어에 따른 RANK가 지정되어 등급별로 행을 반황할 수 있다.

SELECT * FROM CONTAINSTABLE ( [SalesLT].[ProductCategory], Name, 'ISABOUT (그노 WEIGHT (.8), 

그노 WEIGHT (.4), 그 WEIGHT (.2) )' )


8. CONTAINS특정 키워드를 이용해 전문검색 카탈로그를 검색합니다. 

SELECT  *

FROM [SalesLT].[ProductCategory]

WHERE CONTAINS(Name,'그노')   


9. FREETEXT 자유 검색

SELECT * FROM [SalesLT].[ProductCategory] WHERE FREETEXT(Name,N'그노1')  


10. Catalog 확인

SELECT * FROM sys.FullText_Catalogs  


11. FullText Index 확인

EXEC SP_HELP_FULLTEXT_Tables  


12. INDEX 삭제하기

DROP FULLTEXT INDEX ON [테이블명]


13. 카탈로그 삭제하기

DROP FULLTEXT CATALOG [카탈로그명]  


14. 증분 파풀레이션

EXEC sp_fulltext_catalog 'ftCatalog','start_incremental'


15. 풀 파풀레이션 

EXEC sp_fulltext_catalog 'ftCatalog','start_full'


16. STOPLIST 생성하기

CREATE FULLTEXT STOPLIST ProductSL

FROM SYSTEM STOPLIST;


17. STOPLIST 조회하기

SELECT stoplist_id, name FROM sys.fulltext_stoplists


18. STOPLIST 추가하기

ALTER FULLTEXT STOPLIST ProductSL

ADD '?????' LANGUAGE 1042;


19. STOPLIST 리스트 조회하기

SELECT stopword FROM sys.fulltext_stopwords

WHERE stoplist_id = 5 AND language_id = 1042


20. STOPLIST 테스트하기

SELECT special_term, display_term

FROM sys.dm_fts_parser

  (' "testing for ? ?? ????? fruit and nuts, any type of nut" ', 1042, 5, 0)


21. STOPLIST 적용하기

ALTER FULLTEXT INDEX ON ProductDocs

SET STOPLIST ProductSL


22. 테이블에 timestamp 컬럼 추가

ALTER TABLE [테이블명] ADD [컬럼명] timestamp not null




------------------------------------------------------------------

CREATE FULLTEXT INDEX ON Place

(Name, Address LANGUAGE 1042)

KEY INDEX PK_Place

ON PlaceFTS

WITH CHANGE_TRACKING AUTO


use MOCCOZYDATABASE

GO

CREATE FULLTEXT CATALOG PlaceFTS

WITH ACCENT_SENSITIVITY = OFF


SELECT t.name AS TableName, c.name AS FTCatalogName

FROM sys.tables t JOIN sys.fulltext_indexes i

  ON t.object_id = i.object_id

JOIN sys.fulltext_catalogs c

  ON i.fulltext_catalog_id = c.fulltext_catalog_id



  SELECT display_term, column_id, document_count
FROM sys.dm_fts_index_keywords
  (DB_ID('MOCCOZYDATABASE'), OBJECT_ID('Place'))

----------------------------------------------------------------------

Posted by Hoya0415
,

XCode 단축키

IOS/Swift 문법 2016. 5. 22. 11:16

기본적인 맥 단축키

 - 커맨드 + A  : 전체 선택

 - 커맨드 + Z  : 되돌리기

 - 커맨드 + X  : 자르기

 - 커맨드 + C  : 복사

 - 커맨드 + V  : 붙여넣기

 - 커맨드 + BackSpace : 해당 라인 지우기

 - 커맨드 + 방향키  : 해당 방향의 끝으로 이동

   # 커맨드 + Up : 해당 창 가장 위로

     = Home 키도 동일하게 작동합니다.

   # 커맨드 + Down : 해당 창 가장 아래로

     = End 키도 동일하게 작동합니다.

   # 커맨드 + Left : 선택된 텍스트라인 가장 왼쪽으로

   # 커맨드 + Right : 선택된 텍스트라인 가장 오른쪽으로

 - 컨트롤 + 좌/우 : 페이지 변경

 - 커맨드 + Shift + 4 : 선택한 화면 영역 캡쳐

 - 커맨드 + Space : 언어 변환

 - 커맨드 + Space, 커맨드 누른채로 Space 연타 시 다음 언어로 선택 가능.

 - 커맨드 + W : 현재 창 닫기

 - 커맨드 + Q : 선택된 프로그램 종료

 - 커맨드 + H : 현재 창 숨기기

 - 컨트롤 + Space : Spotlight 검색


XCode 

 - 커맨드 + Shift + K  : 프로젝트 클린

 - 커맨드 + B  : 프로젝트 빌드

 - 커맨드 + R  : 프로젝트 실행

 - 커맨드 + I  : 프로젝트 프로파일링 빌드

 - 커맨드 + . : 실행중인 앱 강제 종료

 - 커맨드 + , : XCode 프로퍼티창 열기

  # 해당 창에 Key Bindings 탭에서 모든 단축키를 변경할 수 있습니다. 단, 꼬이면 답이 없습니다..


 - 커맨드 + Shift + O : 프로젝트 내 파일 / 클래스 / 함수 검색 ( 매우 유용 )

 - 커맨드 + Shift + F : 파인드 창으로 캐럿 강제 이동

 - 커맨드 + F : 현재 창 검색

 - 커맨드 + E : 현재 선택된 텍스트 블럭을 모든 텍스트에디트에 복사 ( ?.. 설명을 잘 못하겠네요... )

 - 커맨드 + G : 현재 페이지에 텍스트에디트에 적힌 문구 순차 검색 ( 위 커맨드 + E 와 활용도 매우 높습니다 )

 - 커맨드 + Shift + G : 현재 페이지에 텍스트에디트에 적힌 문구 역순차 검색

 - 커맨드 + alt + Enter : 현재창 이중 분할

 - 커맨드 + Enter : 현재창을 단일창으로 변경

 - 커맨드 + 0 : 왼쪽에 프로젝트 파인더 및 검색 등등 윈도우 숨기기 & 열기

 - 커맨드 + 1 : 프로젝트 파인더 열기

 - 커맨드 + 2 : 프로젝트 하이라키 창 열기

 - 커맨드 + 3 : 프로젝트 검색 창 열기

 - 커맨드 + 4 : 프로젝트 워닝 및 에러 창 열기

 - 커맨드 + 5 : 테스트 타겟창 열기

 - 커맨드 + 6 : 디버그 세션 창 열기

 - 커맨드 + 7 : 프로젝트에 걸려있는 모든 브레이크 포인트를 보여주는 창 열기

 - 커맨드 + 8 : 빌드 관련 히스토리 ?


 - 커맨드 + \ : 브레이크 포인트 걸기

 - 커맨드 + Y : 브레이크 포인트 비활성화 / 활성화

 - 커맨드 + Shift + Y : 하단 디버그 세션 창 열기 / 닫기 

 - 커맨드 + / : 해당라인 주석 걸기 ( 다중 라인도 가능 )

 - 컨트롤 + 커맨드 + 좌우 화살표 : 이전/이후 페이지 이동

 - 커맨드 + [ ] : 해당 방향으로 들여쓰기

 - 컨트롤 + I : 선택된 텍스트블록의 들여쓰기 올바르게(?) 적용


디버깅 관련

 - F6 : 다음 라인 ( Step Over )

 - F7 : 현재 라인 내부 진입 ( Step Into )

 - F8 : 현재 함수에서 나가기 ( Step Out )

 - 커맨드 + Shift + Y : 실행 중 멈춤 ( Pause ) & 멈춤 상태에서 재 진행


소스 컨트롤 관련

 - 커맨드 + Shift + C : 커밋창 열기

 - 커맨드 + Shift + X : 업데이트 하기


iOS Simulator

 - 커맨드 + S : 현재 시뮬레이터에 뜬 화면 캡쳐



'IOS > Swift 문법' 카테고리의 다른 글

0. 공부 준비물  (0) 2016.05.20
10 문법을 마무리하며..  (0) 2016.05.20
9. Optional Value  (0) 2016.05.20
8. struct  (0) 2016.05.20
7. class  (0) 2016.05.20
Posted by Hoya0415
,

 Swift 공부를 하려고 합니다. 글쓴이도 공부하면서 그때 그때 배운 내용을 가지고 이해가 된다면 블로그에 작성하여 

여러분들에게 차근차근 알려줘서 같이 스킬 업 할 수 있게 하려고 합니다.

준비물을 알려드릴게요.


1. 첫번째는 개발도구인    XCODE  입니다. 


2. 두번째는 iBook 에서 The Swift Programming Language 책을 다운 받습니다. 엄청 유용한 문법 책이에요!

시중 책을 사실 필요 없어요

( 이 책을 보면서 공부하면 된다. 단지 영어로 되어 있지만, 코드를 보면서 구글 번역이라도 해서 봐야해요)

3. 세번째는 App 개발에 필요한 Library 설명이 들어있는 문서에요 중요합니다.

 XCODE 실행 후 Menu->Window -> Document and API Reference 



'IOS > Swift 문법' 카테고리의 다른 글

XCode 단축키  (0) 2016.05.22
10 문법을 마무리하며..  (0) 2016.05.20
9. Optional Value  (0) 2016.05.20
8. struct  (0) 2016.05.20
7. class  (0) 2016.05.20
Posted by Hoya0415
,

여기까지 오신 여러분은 이제 개발을 할 수 있는 단계라고 볼 수 있다.


문법 강좌는 여기까지로 마치며, 만약 자신이 부족한 것 같다고 생각이 든다면  다시 한번 코딩을 해보고 습득 하길 권하고


이제부터 콘솔 프로그램이나.. 응용프로그램을 만들 것이다.


우리가 원하는게 이런 문법이 아닌 아이폰이나 맥으로 돌아가는 프로그램을 만드는 일이다


조금만 더 노력하면 여러분이 원하는 앱을 만들 수 있다.. 


실제 Xcode 문서를 보면서 Foundation Framework cocoa touch 알아야 아이폰 앱을 개발할 수 있다..

'IOS > Swift 문법' 카테고리의 다른 글

XCode 단축키  (0) 2016.05.22
0. 공부 준비물  (0) 2016.05.20
9. Optional Value  (0) 2016.05.20
8. struct  (0) 2016.05.20
7. class  (0) 2016.05.20
Posted by Hoya0415
,

9. Optional Value

IOS/Swift 문법 2016. 5. 20. 16:07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//: Playground - noun: a place where people can play
 
import UIKit
 
class Optional{
    //lapping
    var optionalString:String= "Hello"
    
    func hello(){
    //optionalString = nil
        //unlapping
        print(optionalString)
    }
}
 
var option = Optional()
option.hello()
cs


Optional을 출력하면 Lapping 상태의 값이 나올 것이다.

우리가 원하는 출력 값이 아니다.

unlapping 해주면 값이 제대로 출력 될 것이다.





'IOS > Swift 문법' 카테고리의 다른 글

0. 공부 준비물  (0) 2016.05.20
10 문법을 마무리하며..  (0) 2016.05.20
8. struct  (0) 2016.05.20
7. class  (0) 2016.05.20
6. Functions  (0) 2016.05.20
Posted by Hoya0415
,

8. struct

IOS/Swift 문법 2016. 5. 20. 15:46
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//: Playground - noun: a place where people can play
 
import UIKit
 
var name = ["Park" ,"Choi","Kim""Lee"]
var age = [3,4,5,6]
var height  = [40,50,60,70]
 
print(name[0], age[0],height[0])
 
struct Student {
    var name:String
    var age:Int
    var height:Int
    
}
 
var student1 = Student(name: "Park", age: 3, height: 40)
var student2 = Student(name: "Choi", age: 4, height: 50)
 
struct Student2 : Student {
    
}
cs

struct cann't apply inheritance 


struct Student2 : Student {
    
}


'IOS > Swift 문법' 카테고리의 다른 글

10 문법을 마무리하며..  (0) 2016.05.20
9. Optional Value  (0) 2016.05.20
7. class  (0) 2016.05.20
6. Functions  (0) 2016.05.20
5. Conditional Statements  (0) 2016.05.20
Posted by Hoya0415
,

7. class

IOS/Swift 문법 2016. 5. 20. 15:34
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//: Playground - noun: a place where people can play
 
import UIKit
 
//class object
class Vehicle{
    var currentSpeed = 0.0
    //stored property
    
    //Computed property
    var description : String {
        return "traveling at \(currentSpeed) miles per hour"
            }
    
    //Calling Method in Class
    func makeNoise()
    {
        
    }
}
 
 
let someVehicle = Vehicle();
 
print("Vehicle : \(someVehicle.description)")
 
class Bicycle : Vehicle {
    
    var hasBasket = false
}
 
let bicycle = Bicycle()
bicycle.hasBasket = true;
bicycle.currentSpeed = 15.0
print("Bicycle : \(bicycle.description)")
 
class Tandem : Bicycle
{
    var currentNumberOfPassengers = 0
}
 
let tandom = Tandem()
tandom.hasBasket = true
tandom.currentNumberOfPassengers = 2
tandom.currentSpeed = 22.0
 
print("Tandem : \(tandom.description)")
 
class Train:Vehicle
{
    override func makeNoise() {
        print("Choo Choo")
        
    }
}
 
let train  = Train()
train.makeNoise()
cs

You define properties and methods to add functionality to your classes and structures by using exactly the same syntax as for constants, variables, and functions.


class는 상속받은 부모 클래스의 함수를 재정의 (override) 할 수 있다.


class와 structures 의 차이

class는 상속이 가능하지만 structures 는 불가능하다.


Classes and structures in Swift have many things in common. Both can:

Define properties to store values

Define methods to provide functionality

Define subscripts to provide access to their values using subscript syntax

Define initializers to set up their initial state

Be extended to expand their functionality beyond a default implementation

Conform to protocols to provide standard functionality of a certain kind

For more information, see Properties, Methods, Subscripts, Initialization, Extensions, and Protocols.


Classes have additional capabilities that structures do not:

Inheritance enables one class to inherit the characteristics of another.

Type casting enables you to check and interpret the type of a class instance at runtime.

Deinitializers enable an instance of a class to free up any resources it has assigned.

Reference counting allows more than one reference to a class instance.”



'IOS > Swift 문법' 카테고리의 다른 글

9. Optional Value  (0) 2016.05.20
8. struct  (0) 2016.05.20
6. Functions  (0) 2016.05.20
5. Conditional Statements  (0) 2016.05.20
4. Control Flow  (0) 2016.05.20
Posted by Hoya0415
,

6. Functions

IOS/Swift 문법 2016. 5. 20. 14:29
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//: Playground - noun: a place where people can play
 
import UIKit
 
func sayHello()
{
    print("Hello")
}
 
sayHello()
 
func sayHello2(name:String)
{
    print("Hello \(name)")
}
 
sayHello2("Programmer")
 
func sayHelloi3(name:String = "defaultValue")
{
    print("Hello \(name)")
}
 
sayHelloi3("Song")
 
func sayHello4(name2 name:String="Song",age2 age:Int-> String
{
    
    return "Hello \(name) is \(age) years old"
}
 
print(sayHello4(name2:"Song", age2: 3))
 
 
func sayHello5( name:String="Song", age:Int-> String
{
    
    return "Hello \(name) is \(age) years old"
}
 
print(sayHello5("Song", age: 3))
 
 
func sayHello6( name:String="Song", _ age:Int-> String
{
    
    return "Hello \(name) is \(age) years old"
}
 
print(sayHello6("Song"3))
cs


'IOS > Swift 문법' 카테고리의 다른 글

8. struct  (0) 2016.05.20
7. class  (0) 2016.05.20
5. Conditional Statements  (0) 2016.05.20
4. Control Flow  (0) 2016.05.20
3. Dictionary  (0) 2016.05.19
Posted by Hoya0415
,