궂은 날씨였다.


그럼에도 심적으로 어딘가 나가고 싶은, 그런 날이었다.





오래전부터 관악산에 가고 싶었지만


오늘 따라 궂은 날씨에, 갈팡질팡 망설이다


초저녁이 되어버렸다.




'에잇 더 좋은 날에 가자'




가까운 부천역에 가기로 했다. 예전에도 몇 번 가봤지만, 낮에 간 적은 별로 없어 한번 쯤은 다시 가보고 싶었다.





부천은 북부와 남부로 나눠져 있다.


뭔가 묘하게 경쟁하는 듯한 느낌이 있다.





나는 남부에 살지만


북부는 좀 더 젊고 복작복작한, 번화가 느낌이 있다.


젊고 어린 학생들이 많이 모인다.





문득, 난 또래랑은 많이 다른 것 같다는 생각이 들었다.


사람을 만나고 싶다가도 혼자가 더 편하기도 한, 그런 경우가 더 많아서.


요즘은 이런 사람이 많으려나? 비혼주의가 만연한 시대이니.







북부로 나와 왼쪽으로 가면, 상상거리가 나온다.


사람 정말 많았다. 주말이라 그런지 더욱.





왜? 좀 더 들어가보니


술집 고깃집 카페 감성주점 등등.. 젊은 남녀가 놀기 좋은 장소들이 즐비했다.





나는 거의 반 잠옷바람으로 나온터라 어디 들어갈 생각 없이 한바퀴를 쭉 돌고나니


'아.. 여긴 내가 있을 곳이 아닌 것 같다.'





다음엔 자신감 장착하고 일행이랑 와야지 하는 생각.





부천 18번가 라는 약간 클럽 분위기의 감성주점도 있는 모양이다.


클럽.. 가본 적은 없다.


가보고 싶긴 하지만서도.





정처없이 거닐다보니


배도 고프고.





가장 들어가기 만만한 롯데리아에서 반값행사하는 버거세트 하나 포장해갔다.


짧은 인연이라도 갖고 싶은, 그런 날이었다.

'모험일지 > 생각하며 걷기' 카테고리의 다른 글

부천, 북부와 남부  (0) 01:26:36



기존 블로그들의 스킨들을 참고해서 작업. (유료 스킨 참고함. 돈 굳음)


의외로 금방 작업한게 뿌듯하기도 하다.





감성프로그래머 (https://programmingsummaries.tistory.com/) 블로그 처럼 CSS 애니메이션 걸고 싶었는데,


막상 작업하려니 어디에 걸어야할지 모르겠음. (사이드 메뉴는 화면이 작을때만 나와서..) 나중에 좋은 아이디어 생기면 넣어보고싶다.




ps. 여담으로,, 감성프로그래머 이 분 블로그 엄청 대단한게


최근에 올린 포스트가 없는데도 양질의 글들이 많아서인지


방문자 수가 1000을 그냥 넘는다.. 부러울따름이다.

'일상과 취미' 카테고리의 다른 글

스킨 변경 완료.  (0) 2019.05.13
자바 공부를 할때가 온건가 싶다.  (0) 2019.05.05
개인 프로젝트의 근황 정리  (0) 2017.06.09
쬐끔 비슷  (0) 2015.06.28
1인 기업 운영  (0) 2015.06.03
꿈처럼 달콤한건 없지  (0) 2015.03.15

 

 

 

 

 

 

학부 때 웹개발을 처음 접했을 때.

 

그땐 그냥 html과 약간의 css, 그리고 자바스크립트가 전부였었다.

 

 

 

몇몇의 사진들로 자기소개 페이지를 만들고, 좋아하는 배경음으로 sum41 - pieces 를 넣고

 

친구한테 보여주며 자랑했던 기억이 있다.

 

그 당시 까지만해도 내 미래가 웹개발자일줄은 꿈에도 몰랐다.

 

 

 

졸업 시기가 다가왔을 때.

 

남들처럼 안드로이드 개발이나 할까 하다가

 

선배가 다니는 회사로 현장실습 가서 하게 된 웹개발.

 

이후 앞으로의 대세는 웹개발이라 생각을 했다.

 

 

 

그렇게, 그 당시 제일 잘 나갔던 프레임워크라며 보여준 코드이그나이터.

 

꿈을 조금씩 키우기 시작했다.

 

 

 

뭐 그동안의 일들은 각설하고

 

php 를 지금껏 해오면서 부족하다는 생각은 없었지만

 

요즘 특히 개발 트렌드가 자바라고 하니...

 

자바 - 스프링 프로젝트를 하나 해봐야하지않나 싶기도 하다.

 

자바랑 php 랑 비교하는 글을 봤는데

 

어떤 분이 창과 칼로 비유하는 모습이 또 인상깊어서.

 

 

 

낮에 자바를 공부해볼 요량으로 자바 국비지원학원을 잠깐 찾아봤다.

 

그러다 어떤 블로그 를 알게 됐는데..

 

한참을 읽다 IntelliJ 도 깔아보고, 프로젝트 생성도 해보고, 또 잘 안되서 약간의 오기가 생겼다.

 

자바.. 환경 구축 하는 작업은 정말 난해하다. maven이니 gradle이니..

 

 

 

지금 하는 웹개발은 따로 어느 기관에서 배운게 아닌 웹서핑을 통해 대부분을 습득했는데

 

최근에 시도해보려고 하는 자바는 그런 자료가 특히나 많지가 않은 것 같다.

 

그런 자료가 있다고 해도, 버전과 개발환경이 조금씩 다 다르다고나 할까.

 

 

 

오늘 그래서 여러 시도 끝에, IntelliJ CE 에 gradle 로 첫 프로젝트 생성을 마쳤다.

 

스프링부트 Auto-import 까지 하고,, 천천히 따라하면서 진행해볼 생각이다.

 

 

 

 

'일상과 취미' 카테고리의 다른 글

스킨 변경 완료.  (0) 2019.05.13
자바 공부를 할때가 온건가 싶다.  (0) 2019.05.05
개인 프로젝트의 근황 정리  (0) 2017.06.09
쬐끔 비슷  (0) 2015.06.28
1인 기업 운영  (0) 2015.06.03
꿈처럼 달콤한건 없지  (0) 2015.03.15

출처 : https://www.cikorea.net/bbs/view/tip?idx=21004&lists_style=

 

준비물 :

컴포저

컴포저로 설치 된 코드이그나이터 (본인은 3.1.10 에서 진행했습니다.)

MariaDB

(추가) PHP 7.1 버전 이상 .. (본인은 7.3에서 진행했습니다.)

 

그럼 시작하도록 하겠습니다.

packgist 에서 검색하면 제일 많이 사용한 ORM 이라면서 Doctrine 이 최상단에 나옵니다. 이걸 설치할 겁니다.

 

우선 vendor 디렉토리에서 composer.json 을 설정해줍니다.

 

1

2

3

4

5

6

7

8

9

10

11

12

{

    "require": {

        "codeigniter/framework": "^3.1",

        "doctrine/orm": "*"

    },

    "autoload": {

        "psr-4": {

            "": "vendor/codeigniter/framework/application/models/Entities"

        }

    }

 

}

 

autoload  에서 저 경로는 수정해주셔도 됩니다.

키에 해당하는 저 "" 는 네임스페이스가 되는 것 같은데, 저기에 값을 넣어주게되면 오토로딩이 제대로 안되는 것 같아요.

다른 분들은 어떠실지 모르겠네요.

(컴포저 업데이트하게되면 vendor/composer/autoload_psr4.php 여기에 해당 오토로딩 위치가 나오게 되니 참고하시면 됩니다.)

 

아무튼 저렇게 수정해주고

컴포저에 composer update 혹은 심볼릭 링크 안 거신 저 같은 분들은

php composer.phar update

이런식으로 설치하면 의존성 패키지랑 같이 설치가 됩니다.

 

이후 

vendor/codeigniter/framework/application/libraries

이쪽으로 가셔서 Doctrine.php 를 생성해 주고 아래와 같이 코드를 넣습니다.

 

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

<?php

use Doctrine\Common\ClassLoader,

    Doctrine\ORM\Configuration,

    Doctrine\ORM\EntityManager,

    Doctrine\Common\Cache\ArrayCache,

    Doctrine\DBAL\Logging\EchoSQLLogger;

 

class Doctrine {

 

    public $em = null;

 

    public function __construct()

    {

        // load database configuration from CodeIgniter

        require_once APPPATH.'config/database.php';

 

        // Set up class loading. You could use different autoloaders, provided by your favorite framework,

        // if you want to.

        require_once APPPATH.'../../../doctrine/common/lib/Doctrine/Common/ClassLoader.php';

 

        $doctrineClassLoader = new ClassLoader('Doctrine',  APPPATH.'libraries');

        $doctrineClassLoader->register();

        $entitiesClassLoader = new ClassLoader('models', rtrim(APPPATH, "/" ));

        $entitiesClassLoader->register();

        $proxiesClassLoader = new ClassLoader('Proxies', APPPATH.'models/proxies');

        $proxiesClassLoader->register();

 

        // Set up caches

        $config = new Configuration;

        $cache = new ArrayCache;

        $config->setMetadataCacheImpl($cache);

        // composer 의 경로를 확인하면서 수정해주세요.

        $driverImpl = $config->newDefaultAnnotationDriver(array(APPPATH.'models/Entities'));

        $config->setMetadataDriverImpl($driverImpl);

        $config->setQueryCacheImpl($cache);

 

        // Proxy configuration

        $config->setProxyDir(APPPATH.'/models/proxies');

        $config->setProxyNamespace('Proxies');

 

        // Set up logger

        // 이 부분의 주석을 해제하면 쿼리가 나옵니다.

        //$logger = new EchoSQLLogger;

        //$config->setSQLLogger($logger);

 

        $config->setAutoGenerateProxyClasses( TRUE );

 

        // Load the database configuration from CodeIgniter

        require APPPATH . 'config/database.php';

 

        // Database connection information

        $connectionOptions = array(

            'driver' => 'pdo_mysql',

            'user' =>     $db['default']['username'],

            'password' => $db['default']['password'],

            'host' =>     $db['default']['hostname'],

            'dbname' =>   $db['default']['database']

        );

 

        // Create EntityManager

        $this->em = EntityManager::create($connectionOptions, $config);

    }

}

 

주석 잘 유의 하시고 해당 코드를 넣어주세요.

그 다음 해당 위치에서 ../../../../bin/doctrine 를 실행 한번 해줍니다. 이건 사실 정상적으로 동작하는 건지는 잘 모르겠는데

실행했을 경우 별다른 메세지가 나오지 않는다면 정상적으로 경로가 맞다고 볼 수 있겠습니다.

 

이후에 아까 composer.json 에 설정해둔

 

1

2

3

4

5

"autoload": {

        "psr-4": {

            "": "vendor/codeigniter/framework/application/models/Entities"

        }

    }

 

이 위치로 가서 ORM 으로 연동할 php 파일을 만듭니다.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<?php

 

/**

 * @Entity @Table(name="product")

 **/

 

class Product {

 

    /** @Id @Column(type="integer") @GeneratedValue **/

    protected $sn;

 

    /** @Column(type="string") **/

    protected $name;

 

    public function getName()

    {

        return $this->name;

    }

 

}

 

사용하시는 테이블 명, 클래스 명을 유의해서 넣어주세요. 주석처럼 보이는 저 곳에 값을 넣어주지않으면 에러가 납니다.

그리고 주석에 해당하는 부분에 테이블 명을 꼭 넣어주어야되고, Id 부분에는 Primary Key를 꼭 넣어달라고 하네요.

 

마지막으로 config/autoload.php 에서 library 쪽에 Doctrine 을 추가해주거나

$this->load->library('doctrine'); 이런식으로 로드를 해주면 됩니다.

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public function doctrine()

    {

        //오토로딩 안되서 임시방편으로 했던 방법..

        //include_once APPPATH.'models/Entities/Product.php';

        $em = $this->doctrine->em;

 

        $product = $em->find('Product', 1);

 

        if ($product === null) {

            echo "No product found.\n";

            exit(1);

        }

 

        echo sprintf("%s\n", $product->getName());

 

    }

 

컨트롤러 쪽에서 이런식으로 테스트를 진행했는데 잘 나오네요.

 

doctrine 에 대한 자세한 사용방법은

https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/integrating-with-codeigniter.html

여기서 확인해주세요.






참고링크 : https://www.onepagezen.com/manage-wordpress-files-on-google-cloud-platform/


업로드 한 파일을 아무래도 웹에서만 보려니 힘들어서,, 접속설정을 셋팅했다.


윈도우에서 PuTTYgen 으로 아무리 ssh 키를 만들어도 안되던게


gCloud 로 생성한 ssh 키를 등록하니 접속이 되었다.



리눅스에서도 되는거 보니, 맥에서도 gCloud 설치하고 접속하면 한번에 될 듯 함..


참고로 접속할때 처음에 ssh-key 를 생성할 때



이 부분에서 패스워드를 입력하게되면, 다음 접속 때 마다 패스워드를 입력해야된다.


(처음 생성때 그냥 엔터를 치게되면 패스워드 생략됨)


좀 더 보안성을 높일 계획이 있다면 패스워드를 입력하는 것이 좋겠다.




gCloud 는 https://cloud.google.com/sdk/ 에서 OS 버전 별 설치를 제공하고 있으니 참고.


맥에서 설치는 좀 특이한데 (참고링크 : https://jungwoon.github.io/google%20cloud/2017/10/26/install-gcloud/)


홈 디렉토리에 놓고 .zshrc 나 .bashrc 파일을 수정해서 다운받은 gCloud 패키지를 연결하면 된다.