목록Categories (1099)
KoreanFoodie's Study
시간이 없다. 시간을 사고 싶다. 미하엘 엔데의 모모에서처럼, 시간은행이 있었으면 좋겠다. 성실히 갚아나갈 자신도 있는데. 물론 신용불량자가 되어 말년을 인큐베이터에서 마감할수도 있지만서도. 안타깝게도 은행은 없지만, 현실 세계에서는 시간을 사고 파는 일이 성행하고 있다. 비록 저장을 할 수 없기에 보이지 않을 뿐. 사람들은 시간을 물건과 맞바꾸기도 하고, 돈을 벌기 위해 사용하기도 한다. 어떻게 쓰는 것이 제일 현명한 소비일지는 그 사람만이 알 수 있는 부분이겠지. 시간에도 영수증이 붙는다. 그러니 허투루 사용하지 않도록 노력해야 한다. 돈과는 달리 시간에는 법인카드 따위도 없으니. 함부로 사용한 시간은 나랏님조차 구제해 줄 수 없다. 내 머릿 속 창고는 헛되이 사용한 영수증이 가득 담겨 넘치기 직전이..
Gradle (그레이들)? 그림 : 빌드 툴의 진화와 그레이들의 위치 그레이들은 크로스 플랫폼 스크립트 언어(JVM 언어)인 그루비를 기반 기술로 선택했다. 그레이들 개요 그레이들은 Build Automation Evolved 라고 소개된다. 그레이들은 각종 프로젝트 자동화에 적용될 수 있으며, 앤트의 유연성, 메이븐의 의존관계 관리와 규칙 기반 등의 기존 빌드 툴의 장점을 가져왔다. 또한 그루비 DSL(Domain-Specific Language)을 도입해 효율적인 빌드를 실현했다. 그래이들의 공식 사이트, 코드, 사용자 가이드 그레이들은 빌드 스크립트 생산성이 높고(list literal, map literal, closure 등), 빌드 순서를 제어하기 쉬우며, 멀티 프로젝트에 대응하고, 컴포넌트를..
오늘은 회전목마라는 노래를 들었다. 한 가지 노래에 꽂히게 되면 하루종일 그 노래를 틀어놓는 내 버릇이 또 발동되었다. 공부중에도, 샤워할때도, 이동중에도 어김없이 회전목마가 반복재생된다. 회전목마라. 회전목마에는 항상 특유의 감성이 묻어있다. 사실은 어렸을 적, 회전목마를 타 본 일이 기억나지 않는다. 기억을 못 하는 것이 아니라 타 본 적이 없을지도 모르지. 빙빙 돌아가는 회전목마처럼 영원히 계속될 것처럼. 빙빙 돌아온 우리의 시간처럼. 노래 가사처럼, 나도 나에게 주어진 시간과 젊음이 계속될 줄만 알았다. 빙빙 돌아가는 회전 목마처럼, 내 눈에 보이는 풍경은 한바퀴를 돌아도 처음 그대로일줄 알았다. 빙빙 돌아가는 회전목마를 탄 채 주변을 둘러보니, 어느새 첫 바퀴째의 풍경과는 사뭇 달라진 것들이 눈..
어제는 하루종일 원슈타인의 적외선 카메라를 들었다. 2020년 겨울, 나는 별 걱정도 없이 자취방에서 이 노래를 들었다. 이 노래가 내 걱정을 가져가버린건지도 모르겠다. 그냥, 이 노래를 들으면 그때로 되돌아간 것만 같다. 따뜻한 전기장판 위 싸구려 일인용 침대에서 웅크리고 앉아 고개만 살짝 흔들던 내 모습이 떠오른다. 여유와 권태 사이에서 하릴없이 시간을 죽이던 한심하고 부러운 내가 보인다. 그땐 그랬었지. 겨우 1년이라니. 벌써 1년이라니. 시간은 너무나도 소중하다. 그러니 노래도 함부로 고르면 안되는 것이다. 노래를 듣는다는 건, 그 가수의 목소리에 내 시간을 바치는 행위이니까. 노래가 나라에서 허용한 유일한 마약이라는 우스갯소리처럼, 그때의 나는 그냥 무언가에 취하고 싶었던 걸지도 모르겠다. 그래..
사람들로 빽빽히 가득찬 강철상자 속에서 사람들은 하나같이 플라스틱 장난감을 손에 쥐고 있다. 때론 상상이 가질 않는다. 어른아이들의 손에 형형색색의 장난감이 들려있지 않았던 광경이. 분명 예전에는 그랬을 텐데. 고개를 처박고 한 곳만 바라보는 대신, 천장과 다른 사람들의 얼굴을 구경하며 시간을 죽였을 텐데. 그런 장면은 분명 너무나 어색할 것임에 틀림없다. 거대한 엘리베이터를 타고 서로의 눈치를 보는 그런 상황이겠지, 모르긴 몰라도. 출퇴근길 버스도 지하철처럼 수많은 사람들을 콩나물처럼 가득 싣는다. 어떤 선배가 나에게 이렇게 말했다. 만약 화산 폭발이나 다른 재해가 발생해, 폼페이처럼 사람들이 산 채로 보존되게 된다면. 그리고 수많은 시간이 흘러 외계인이 우리 행성에 방문하게 된다면. 버스에 탄 사람들..
언리얼 엔진 - 시점 변환 및 카메라 설정 위와 같이 Blueprint class -> Character class를 만든 다음, Capsule Component를 이용해 Collision을 만들어 주자. Mesh는 이미 만들어둔 Skeleton mesh를 적용하고, SpringArm과 Camera를 만들어준다. 축 매핑에 위와 같이 VerticalLook과 HorizontalLook을 만들어 준 다음, Player를 컨트롤하는 BP_Player를 열어 이벤트 그래프를 다음과 같이 구성한다. 그후, BP_Player(셀프, 플레이어의 블루프린트 클래스이다)의 속성에서 Pawn -> Use Controller Rotation Yaw 체크박스 해제, Auto Possess Player에 Player0을 지정..
비즈니스 컴포넌트 사용하기 다음 그림이 바로 핵심이자, "숲"에 해당하는 구조이다. 스프링 컨테이너의 관계 톰캣 서버를 처음 구동하면 ① web.xml 파일을 로딩하여 서블릿 컨테이너가 구동된다. 그리고 ② 서블릿 컨테이너는 web.xml 파일에 등록된 ContextLoaderListener 객체를 생성(Pre Loading)한다. 이때 ContextLoaderListener 객체는 resources 소스 폴더에 있는 business-layer.xml 파일을 로딩하여 스프링 컨테이너를 구동하는데, 이를 'Root 컨테이너'라고 한다. 그리고 이때, Service 구현 클래스나 DAO 객체들이 메모리에 생성된다. 그리고 사용자가 로그인 버튼을 클릭하여 ‘.do’ 요청을 서버에 전달하면 서블릿 컨테이너는 D..
Transaction 관리 스프링과 비교되는 EJB는 모든 비즈니스 메소드에 대한 트랜잭션 관리를 EJB 컨테이너가 자동으로 처리해 준다. 스피링에서도 마찬가지의 기능이 가능하다. 스프링의 트랜잭션 설정에서는 앞에서 학습한 AIO가 사용된다. 그런데 XML 기반의 AOP 설정만 사용할 수 있고, 어노테이션은 사용할 수 없다. 그리고 애스펙트를 설정하는 것도 엘리먼트를 사용하지 못하고 엘리먼트를 사용해야 한다. 1. 트랜젝션 네임스페이스 등록 2. 트렌잭션 관리자 등록 3. 트랜잭션 어드바이스 설정 엘리먼트는 다음과 같은 속성을 가질 수 있다. 4. AOP 설정을 통한 트랜잭션 적용 위의 설정들을 통해 트랜잭션이 동작하는 것을 그림으로 표현하면 다음과 같다. JSP : Scriptlet. 그냥 자바 코드 ..
IoC를 이용한 비즈니스 컴포넌트 개발 : 4개의 자바 파일 1. VO(Value Object) 클래스 작성 VO(Value Object) 클래스는 레이어와 레이어 사이에서 관련된 데이터를 한꺼번에 주고받을 목적으로 사용하는 클래스. VO 클래스는 데이터베이스에 생성되어 있는 테이블의 데이터를 매핑하기 위해서 사용한다. 2. DAO(Data Access Object) 클래스 SQL 명령어들 3. Service 인터페이스 4. Service 구현 클래스 @Service, @Repository, @Controller 어노테이션 @Component를 목적에 따라 나눔 (클래스별로 @Repository, @Service, @Data) AOP(Aspect Oriented Programming) IoC가 결합도와 ..
꼭! 알아야 할 개념 IoC : Inversion of Control AOP : Aspect Oriented Programming MVC : Model-View-Controller Java, JDBC, HTML, Servlet/JSP 프레임워크 프레임워크는 뼈대이다. 뼈대는 바꾸는 것이 아니라 이용하는 것이다. 하나의 틀이라고 봐도 됨 메타 데이터는 주로 XML. 아키텍처에 해당하는 클래스를 콜드 스팟(Cold Spot) 이라고 하며, JAR(Java Archive) 파일을 의미한다. POJO(Plaing Old Java Object)란? POJO란 말 그대로 평범한 옛날 자바 객체를 의미한다. 대표적인 Not POJO 클래스가 Servlet이나 EJB 클래스다. Servlet 클래스는 우리 마음대로 만..