Ch.001
 - 영어의 핵심은 문장의 의미를 결정하는 동사와 전치사의 사용법을 아는 것...이란다.
 - 동사와 전치사가 형성하는 명사와의 관계, 즉 문장의 구조를 쉽게 익히게 해주는 책

1. 목적어가 있는 경우의 동사 구조
 - 명사 + 동사 + 명사 + 전시차 + 명사
A get B into C : A가 B를 C에 집어넣다
A get B out of C : A가 B를 C에서 꺼내다

2. 목적어가 없는 경우의 동사 구조
 - 명사 + 동사 + 전치사 + 명사
A get into B : A가 B에 들어가다
A get out of B : A가 B에서 빠져나오다

Ch.002
 - 영어의 동사는 자동사이면서 타동사인 경우가 많으므로 사동의 뜻도 알고 있기

walk : 걷게 하다 / 걷다
A walk B : A가 B를 걷게 하다
A walk B to C : A가 B와 같이 걸어서 C로 가다
A walk B : A가 B(장소, 거리)를 걷다

adapt : 적응시키다 / 적응하다
A adapt B to C : A가 B를 C에 적응시키다
A adapt to B : A가 B에 적응하다

stand : 세우다 / 서다
A stand B on C : A가 B를 C에 세우다
A stand : A가 일어서다

등등

Ch.003
 - 전치사는 기본적으로 공간 이동의 의미가 있다.

1. B to C : 동사가 뭐든 B가 C로 가는 의미
A 동사 B to C : B가 C로 이동하다

2. B through C : 동사가 뭐든 B가 C를 통과하는 의미
A 동사 B through C : B가 C를 통과하다

3. B out of C : 동사가 뭐든 B가 C에서 나오는 의미
A 동사 B out of C : B가 C에서 나오다

4. B with C
A 동사 B with C : B가 중심, C는 부속된 것. B가 C를 소유하는 것이며 C가 B로 이동

A vote B to C : A가 투표로 B를 C로 보내다(B를 C로 뽑다)
A vote B through C : A가 투표로 B를 C에 통과시키다(B를 C에 통과시키다-의회를 통과하다 등)
A vote B out of C : A가 투표로 B를 C에서 내쫓다
A supply B with C : A가 B에게 C를 공급하다/증정하다/제공하다

Ch.004
 - 전치사구 없이 동사의 뜻만 암기하면 그 동사를 사용하기가 어렵다.
 - 전치사구까지 한꺼번에 알아야 문장을 이해하고 하고 싶은 말을 만들어낼 때도 유용하다.

Ch.005
 - help oneself to~ : ~을 먹다. 왜?
 - 동사는 그 의미가 다양하게 확장되어 쓰일 수 있다.

help : 돕다 -> 진척시키다/해소하다/없애다 -> 피하다(없앨 수 없다->피할 수 없다 에서) -> 참다(피할 수 없다->참을 수 없다 에서)

He helped hre to the door. 문으로 가는/접근하는 걸 돕다. -> 접근하다에서 차지하다로 확장
His good play helped the team to the championship. 팀이 우승을 차지하는 것을 돕다. -> 음식을 차지하다에서 먹다로 확장
Help yourself to the cake. 케이크를 먹어라.
Help yourself. 마음껏 드세요.

 - 이런 식으로 동사가 전치사구를 만나서 다양한 의미로 확장되는 것을 잘 이해하고 구사하는 것이 중요하다.

ps. 개인적으로 공부하기 위해 아주 간략히 정리하는 수준의 글이지만 저작권에 문제가 될지도? ㅎㄷㄷㄷㄷㄷ

'Study > English' 카테고리의 다른 글

[전치사] to  (0) 2010.02.23
[전치사] from  (0) 2010.02.22
http://www.itkuja.com/tt/108?TSSESSION=369b61cb290986c94201216056805511

find / -name "*rms*"
find (대상디렉토리) -옵션

[Toad] tab 간격 조정하기

프로그래밍/DB 2010. 2. 2. 14:18 Posted by galad
참고: http://www.asktoad.com/DWiki/doku.php/faq/answers/editor

기본설정에서는 탭이 이상하게 - 윗줄의 단어에 맞춰서 - 움직이게 되어있음

To resolve these problems, go to Edit → Editor Options and look under "General Options", under the "General Options" node, where there are several options related to tab stops. Unchecking "Auto indent" and "Tab to next column" will make the step size consistent. Unchecking "Insert TABs into text for TAB characters" and "Insert mixture of tab/space for optimal fill" will make TOAD use spaces instead of Tabs, which will prevent any problems where TOAD's tab stop difference is different from another program's.

'프로그래밍 > DB' 카테고리의 다른 글

[oracle] select 문을 이용한 update  (0) 2010.03.08
[oracle] 제약조건 확인하기  (0) 2010.02.25
[ORACLE] 특수문자 입력  (0) 2009.10.21
[Oracle] Toad 단축키  (0) 2009.08.22
[oracle10g] 페이징 시 rownum 사용하기  (0) 2009.04.06

[hackintosh] dell m1210 에 10.6.2 hazard 설치

Apple 2010. 1. 31. 01:39 Posted by galad
dvd 부팅
하드 지우기 - 미리 파티션 설정 후 shaq swap? 형식으로 타입 변경(acro... suit). 설치 시 삭제할 때는 osx 져글링 타입으로.
사용자화에서 10.6.1 업데이트, 10.6.2 업데이트, intel 커널, NVinject 비디오, AppleHDA 오디오, voodoo메모리/파워, 추가글꼴 등 선택 후 설치
xp로 부팅되므로, 윈도우즈에서 boot think 설치
boot think에서 osx 선택하고 f8, -v cpus=1 arch=i386 부팅
초기 설정
부팅 완료.
dsdt 패치 - 안하면 부팅 시마다 cpus=1 옵션 줘야함. dsdt 패치 하지 말 것. 하면 심하게 버벅대는 현상이 나타남. -> cpus=2가 되어서 동기화가 안되는 현상

broadcom 440x 만 잡으면 되는데... leopard에 440x용 드라이버가 없다는 듯... 기존 것 사용하기
$ sudo -s
$ mv IONetworkingFamily.kext IONetworkingFamily.kext.new 새것 이름변경
$ cp /System/Library/Extensions/IONetworkingFamily.kext ~/backup 현재것 복사. 백업본도 만들기
$ mv IONetworkingFamily.kext IONetworkingFamily.kext.ori 현재것 이름변경
$ cp ~/backup/IONetworkingFamily.kext.new/Contents/Plugin/AppleBCM440XEthernet.kext ~/backup/IONetworkingFamily.kext.ori/Contents/Plugin 새걸 복사
$ mv IONetworkingFamily.kext.ori IONetworkingFamily.kext 현재것 이름을 원래대로

$ mv IONetworkingFamily.kext /System/Library/Extensions/ /S/L/E에 넣기
$ cd /System/Library/Extensions/
$ ln -s IONetworkingFamily.kext com.apple.iokit.IONetworkingFamily.kext  링크 설정
$ rm /System/Library/Extensions.kextcache
$ rm /System/Library/Extensions.mkext
$ chown -R root:wheel /System/Library/Extensions
$ kextcache -k /System/Library/Extensions

9. Disk Utility를 통해서 Repair Disk Permissios를 수행합니다.
10. 저같은 경우에는 재부팅을 안했는데도 동작을 하네요. 혹시 모르니까 재부팅.

-> 첨부한 것 사용하기. 64bit에서 작동하는 드라이버.
IONetworkingFamily.kext.new/Contents/Plugin/ 에 넣고 권한 바꿔 주고, /S/L/E에서 ln -s IONetworkingFamily.kext com.apple.iokit.IONetworkingFamily.kext  링크 설정. 중요!!!

유선랜 까지 설정하고 나서는 sudo 로 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist 를 수정.
<key>Kernel Flags</key>
<string>cpus=1</string>
수정하면 부팅 시 cpus=1 옵션 필요없다.

설치 완료.
- 무선랜, 듀얼코어 설정 제외한 나머지는 다 잘 작동하는 듯.
- 추후 다른 머신에서 설치 시에도 드라이버의 64비트 지원 여부랑 씨퓨 코어 갯수 정도만 잘 체크하면 될 듯.
- 아, m1210에서는 achi 설정 옵션이 바이오스에 없었음. 혹시 모르디 다른 머신에서는 주의.

추가.
- 부팅 시 옵션 넣기. F8 -> -v(로그출력) cpus=1(시퓨 1개일 때. 가끔 듀얼코어 이상에서도 필요) arch=i386(32bit 시퓨)
- -s(싱글 모드. 콘솔로 뜸). -x(세이프 모드. 핵심 kext만 로드하여 부팅). -F(com.apple.Boot.plist-부팅 설정파일-무시하고 모든 kext 로드)

'Apple' 카테고리의 다른 글

[Mac] home, end key  (0) 2010.11.14
[apple] iAd...  (0) 2010.04.13
[Mac] 멀티부팅 - boot think  (0) 2010.01.29
영감을 불어넣는 무언가  (0) 2010.01.15
[iPhone] 아이폰에서 이모티콘 쓰기  (0) 2009.12.21

[Mac] 멀티부팅 - boot think

Apple 2010. 1. 29. 15:35 Posted by galad
http://smok95.tistory.com/171
http://x86osx.textcube.com/387

install 하고나서 installMBR 필수
삭제 시에는 uninstall 만(MBR 필요없음)

OSX 설치하고 나면 설정이 사라지므로 uninstall 하고 다시 설치할 것

'Apple' 카테고리의 다른 글

[apple] iAd...  (0) 2010.04.13
[hackintosh] dell m1210 에 10.6.2 hazard 설치  (0) 2010.01.31
영감을 불어넣는 무언가  (0) 2010.01.15
[iPhone] 아이폰에서 이모티콘 쓰기  (0) 2009.12.21
[mac] 부팅 시 에러 등  (0) 2009.12.13

[java] getClass, getMethod, invoke

프로그래밍/Java 2010. 1. 22. 15:22 Posted by galad
public static void setAllowedTypes(FileUploadInfo info, SubContentInfo sinfo) throws ContentException {
    log.debug("<< setAllowedTypes >> START");

    Class cls = info.getClass();
    Class scls = sinfo.getClass();
    Method[] mtd = cls.getDeclaredMethods(); // cls에 선언된 모든 메소드를 반환
    Pattern p = Pattern.compile("get_fileUpload_(\\d+)FileName"); // 패턴 설정. \d+ 는 정수 하나 이상(정규식)
    Matcher m = null;
    String mStr = null;
    String mType = null;
    String defExt = null;
    int i;

    for(i = 0; i < mtd.length; i++) { // 모든 메소드만큼 돌면서
        m = p.matcher(mtd[i].getName()); // 메소드명과 패턴을 비교
        if(m.find()) { // 매칭된 것이 발견되면
            try {
                // group으로 매칭된 내용(메소드명)을 받아서 그 메소드를 실행. 파일명을 얻음.
                mStr = FileUploadInfo.getValueOfMethod(info, m.group());
                if(mStr != null) { // 파일명이 존재하는 경우만
                    // group(1)으로 매칭된 번호를 얻어서 메소드 실행. 콘텐트 타입을 얻음.
                    mType = FileUploadInfo.getValueOfMethod(info, "get_fileUpload_" + m.group(1) + "ContentType");
                    // 기본 확장자 지정
                    defExt = "";
                    if(mType != null) {
                        defExt = mStr.substring(mStr.lastIndexOf(".") + 1);
                        defExt = defExt.toLowerCase().trim();
                       
                        log.debug("defExt = " + defExt);
                       
                        if("jpg".equals(defExt) ||
                           "gif".equals(defExt) ||
                           "xml".equals(defExt) ||
                           "xmp".equals(defExt) ||
                           "png".equals(defExt) ||
                           "zip".equals(defExt) ) {
                            // 진행
                        }else {
                            // 오류 발생
                            throw new ContentException("지원하지 않는 파일입니다.");
                        }
                    }
                   
                    Class[] cParam = new Class[]{String.class};
                    // 메소드를 찾는데, 메소드명이 "set...."이고 cParam형식을 파라미터로 갖는 메소드를 반환. null이면 파라미터 없는 메소드
                    // cParam이 Class 배열인 것은 파라미터가 여럿인 메소드가 있기 때문에.
                    // 여기서는 String을 파라미터로 갖는 set_fileUp.... 메소드를 반환.
                    Method cMtd = cls.getMethod("set_fileUpload_" + m.group(1) + "FileName", cParam);
                    Object[] oParam = new Object[]{mStr};
                    // FileUploadInfo에 등록
                    cMtd.invoke(info, oParam); // info의 set_fileUpload_XFileName 메소드를 실행. 파라미터는 oParam
                    // SubContentInfo에 등록
                    // 1. FileUPloadInfo의 FieldName을 찾는다.
                    cMtd = cls.getMethod("get_fileUpload_" + m.group(1) + "FieldName", null);
                    String tmpFieldName = (String)cMtd.invoke(info, null); // 업로드 파일명을 저장할 대상 필드명을 얻어서
                    // 2. SubContentInfo의 의 1번의 Method에 등록한다.
                    cMtd = scls.getMethod("set" + tmpFieldName.substring(0, 1).toUpperCase() + tmpFieldName.substring(1)  , cParam);
                    cMtd.invoke(sinfo, oParam); // 서브콘텐츠info에 저장함.

                }
            }
            catch (ContentException e) {
                log.debug("지원하지 않는 파일 예외 발생", e);
                throw e;
            }
            catch (Exception e) {
                    e.printStackTrace();
            }
        }
    }

}

public static String getValueOfMethod(Object obj, String methodName)
        throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
    String str = "";
    Class cls = obj.getClass();
    Method mtd = cls.getMethod(methodName, null); // 넘겨받은 오브젝트의 클래스의 메소드를 얻어서
    str = (String)mtd.invoke(obj, null); // 메소드를 실행시킴.
    // 이때 파라미터로 받은 오브젝트는 메소드가 실행될 대상 오브젝트. 즉, obj의 메소드 mtd를 실행함.

    return str;
}

동적으로 움직이는 기능을 만들기 위해서는 필수적.

'프로그래밍 > Java' 카테고리의 다른 글

[java] Convert Milliseconds to Date  (0) 2010.03.15
[java] invoke  (0) 2010.03.09
[java] Pattern / Matcher  (0) 2010.01.22
[java] 파일 관련  (0) 2010.01.07
[java] thorws .....  (0) 2009.12.11

[java] Pattern / Matcher

프로그래밍/Java 2010. 1. 22. 15:02 Posted by galad
public class MatcherTest {

    /**
     */
    @Test
    public void testMatcher() {
        //Method[] mtd = cls.getDeclaredMethods(); // cls에 선언된 모든 메소드를 반환
        String mtd = "get_fileUpload_0FileName";
        Pattern p = Pattern.compile("get_fileUpload_(\\d+)(FileName)"); // 패턴 설정. \d+ 는 정수 하나 이상(정규식)
        Matcher m = null;
       
        m = p.matcher(mtd);
        if(m.find()) {
            System.out.println(m.group()); // matcher에서 매칭된 것 전체를 반환
            System.out.println(m.group(0)); // group() 과 같음.
            System.out.println(m.group(1)); // matcher에서 매칭된 것 중, pattern에서 첫 번째 ()로 묶인 것을 반환. 결과는 "0"
            System.out.println(m.group(2)); // matcher에서 매칭된 것 중, pattern에서 첫 번째 ()로 묶인 것을 반환. 결과는 "FileName"
        }
    }
}

Pattern.complie 과 정규식으로 패턴 설정.
matcher 로 그 매칭 결과를 받은 후, group 으로 매칭된 내용을 확인

'프로그래밍 > Java' 카테고리의 다른 글

[java] invoke  (0) 2010.03.09
[java] getClass, getMethod, invoke  (0) 2010.01.22
[java] 파일 관련  (0) 2010.01.07
[java] thorws .....  (0) 2009.12.11
[java] 소스 분석  (0) 2009.09.06