가짜피 만드는 방법입니다.


저번주에 할로윈을 맞아 몇가지 준비를 했었습니다. 가짜피가 필요했는데 인터넷에서 판매하는


할로윈 가짜피는 퀄리티가 많이 안좋더라구요... 착색도 잘 안되고 점도도 떨어지고 색도 별로고


그래서 직접 만들기로 했습니다.




2가지 방법으로 만들건데요 첫번째는 옷에 묻히기 위한 가짜피 두번째는 입에 바르거나 먹을 수 있는 가짜피 입니다.




옷에 묻힐 피 준비물


빨간색소, 물, 밀가루, 커피


입에 칠할 먹을 수 있는 가짜피 준비물


빨간색소, 초콜렛, 물엿, 커피



이제 가짜피 만드는 과정을 알아 봅시다.


1. 붉은 색소를 물에 섞어요



<식용 색소>


인터넷에서 2천원인가 주고 주문했어요 물론 근처에 파는곳이 있으면 그곳 에서 구입하시면 됩니다.

 



먼저 식용색소를 냄비에 붓고 물이랑 밀가루를 넣고 섞으면





이런 밝은 붉은색이 나옵니다. 끓이는중에 밀가루를 넣으면 익어서 섞기 힘들어지니 미리 밀가루는 충분히 넣어 주세요


2. 커피도 섞어요



<원래 피는 좀 검붉은 느낌이기 떄문에 커피가루를 섞어줍니다.>



냄비에 차있는걸 보면 그대로 써도 될것같지만 저상태로 웃에 묻히면 굉장히 밝은 복숭아색이 나오기 떄문에 


커피를 섞어서 검붉은 느낌을 내줍니다. 



.






3. 끓여요



너무 센불이 아닌 약한불로 살살 끓여줍니다. 그리고 집에서 음식만들때 쓰는 냄비 쓰면 등짝 맞으니까 

안쓰는 냄비를 사용하세요


졸이다 보면 밀가루 때문에 점도가 올라가고 색도 진해지는걸 느낄 수 있습니다.


이때 끓이면서 커피가루를 추가적으로 넣으면서 색을 맞춰주세요



4. 중간 발색 테스트

생각보다 색이 진해졌다고 생각하고 하얀색 의사가운에 묻혀봤는데 아직 너무 밝고 색도 진하지 않네요


커피가루를 더 넣고 조금 더 끓여줍니다.


주의할건 밀가루 때문인지 바닥에 눌러 붙으니까 적당히 저어주면서 끓이세요



5. 계속 끓이면서 색 테스트를 합니다.


<완성>


오... 걸쭉한게 훌륭하네요 




원래 피는 뿌려지고 시간이 지나면 색이 변하는데 그걸 표현하기 위해서 


중간중간 가짜피를 끓이면서 계속 칠했기 떄문에 밝은 붉은색과 진한 검붉은색이


같이 보여지게 했어요


그리고 이떄 냄비 바닥을 살살 긁어 보면 밀가루 뭉쳐진 점액이 있는데 이것도 같이 묻혀줍니다.


그럼 진짜 핏덩어리진 효과를 낼 수가 있어요


<바로 이런 느낌>



입에 칠할 가짜피는


위의 과정에서 밀가루와 커피가루를 초콜렛으로 대체해 주면 됩니다.


검붉은색을 위해 초콜렛을 넣었는데 너무 많이 넣으면 식었을때 너무 굳어버리니까 커피가루도


같이 섞으면서 색을 냅니다.





결과



<주사기에 가짜피를 담았어요>


<입주변에 살짝>




의외로 처음만든 가짜피 퀄리티가 굉장히 훌륭했습니다ㅎㅎ

보통 전자정부같은 Spring기반의 프로젝트를 할때 에러가 나던가 혹은 서버에서 어떤 액션이 일어나면 이클립스 콘솔창에


많은 정보들이 후두두둑 하고 올라간다.


내가 날린 쿼리가 무엇인지, 내가 요청한 URL은 무엇있지 버그나 오류가 있을땐 어떤 오류인지 온갖 정보들이 나타나는데


가끔 쿼리를 실행해도 어떤 쿼리를 실행했는지 나타나지 않는 경우가 있다. 단지 오류가 났을때만 콘솔창에 로그를 뿌려주는 경우


이럴때 버그가 있더라도 시스템에서 오류가 나지 않는다면  어떤 쿼리를 실행시켰는지 어떤 url을 요청했는지 알기 힘들게 된다.



이런경우의 대부분은 로깅 프로퍼티의 설정 레벨이 warn 정도로 되어 있는 경우 인것 같다.


정상적인 쿼리도 콘솔창에 보이게 할수 있도록 설정하는 방법을 알아보자.



log4j를 쓰던 log4j2를 쓰던 logback를 쓰던 설정 xml파일의 이름엔 [log]가 들어간다


프로젝트의 구성,설계에 따라 해당 xml파일은 리소스에 들어가는 경우도 있고 web-inf에 들어가는 경우도 있다


파일을 열어 보면


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
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration 
    xmlns:log4j="http://jakarta.apache.org/log4j/" 
    debug="false">
    
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
        </layout>   
    </appender>
    
    <logger name="egovframework" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="console"/>
    </logger>
 
    <!-- log SQL with timing information, post execution -->
    <logger name="jdbc.sqltiming" additivity="false">
        <level value="WARN" />
        <appender-ref ref="console" />
    </logger>
 
    <logger name="jdbc.audit" additivity="false">
        <level value="WARN" />
        <appender-ref ref="console" />
    </logger>
    
    <logger name="jdbc.resultset" additivity="false">
        <level value="WARN" />
        <appender-ref ref="console" />
    </logger>
    
    <logger name="org.springframework" additivity="false">
        <level value="INFO" />
        <appender-ref ref="console" />
    </logger>
    
    <logger name="java.sql" additivity="false">
        <level value="WARN"/
        <appender-ref ref="console"/
    </logger
    
    <root>
        <level value="INFO" />
        <appender-ref ref="console" />
    </root>
                       
</log4j:configuration>
 
cs


이런식으로 되어 있을 것이다. 이부분은 log4j나 logback나 크게 다른 부분은 없다.


단지 로거 안에 레벨이 들어가냐 안들어가냐 어펜드가 포함되냐 안되냐 그리고 최상단에의 정보들같은  이런 약간의 차이만 있을 뿐이다.



보면 <level value="warn"/> 이라고 되어있는데


여기서 밸류값에 들어가는 종류는


DEBUG, INFO, WARN, ERROR, FATAL, ALL, OFF 가 있다.



ALL은 모든 로깅

OFF는 로깅 해제


DEBUG = 디버깅

INFO = 강조정보

WARN = 경고

ERROR = 오류

FATAL = 심각한 오류


라는 의미 이며


WARN은 경고수준 이하 레벨의 정보는 로깅하지 않는 다는 뜻이다

그러니 정상적으로 돌아가는 SQL쿼리문은 콘솔창에 나타나지 않으니


레벨의 밸류를 전부 DEBUG 로 바꿔주자


로거 name="" << 이부분의 네임은 어떤 부분에서 로그를 띄워줄지 적는 부분이다.


뭔지 모르겠고 sql만 띄우고 싶다면 jdbc.sqltiming  이부분의 레벨만 DEBUG 로 바꿔보도록 하자


설정에 따라  


1
2
3
4
5
6
7
<logger name="org.springframework" level="DEBUG " additivity="false">
     <appender-ref ref="console" />
</logger>
  
<logger name="org.mybatis" level="DEBUG "  additivity="false">
    <appender-ref ref="console" />
</logger>
cs


이런식의 스프링프레임워크나 마이바티스에 관한 로그를 띄울 수도 있다.



아무튼 원하는 부분의 레벨을 DEBUG로 설정한 후 구동시키면 정상적으로 실행되는 정보들도 출력이 된다.


additivity 이부분은 

http://seosh81.info/?p=404  << 이분의 블로그에서 잘 설명이 되어 있으니 궁금하면 들어가서 보자


간단히 설명하자면 로그이벤트를 부모에게 전달하도록 하느냐 마느냐 정도의 설정부분인것 같은데


어차피 나는 야매개발자라서 정확하고 자세하겐 모른다.



 <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %5p [%c] %m%n" />
        </layout>   
    </appender>


이부분에서 ConversionPattern이부분의 밸류는 콘솔에 표현되는 표현식을 지정하는 부분이다.


표현식은 아래와 같다.


%m: 로그 내용 출력
%p: debug, info, warn, error, fatal 등의 priority 출력
%r: 어플이 시작 후 이벤트가 발생하는 시점까지의 경과시간 밀리세컨드로 출력
%c: package 출력
%c{n}: n(숫자) 만큼의 package를 가장 하단 부터 역으로 출력
        예) %c{2} 일때 a.b.c 는 b.c 로 출력된다.
%n: 개행문자 출력. 플렛폼에 따라 \r\n 또는 \n 출력.
%d: 이벤트 발생 날짜 출력 ( 프로그램의 실행속도를 느리게 한다.)
        예) %d{HH:mm:ss} 또는 %d{dd MMMM yyyy HH:mm:ss}
%C: 호출자의 클래스명 출력
        예) %C{2} 일때 a.b.c.TestClass 는 c.TestClass 로 출력된다.
%M: method 이름.
%F: 프로그램 파일명.
%l: caller의 정보
%L: caller의 라인수
%x: thread와 관련된 NDC(nested diagnostic context) 
%X: thread와 관련된 MDC(mapped diagnostic context) 
%%: % 표시를 출력  
%t: 쓰레드 이름


로그띄울줄 몰라서 들어온 사람이라면 어차피 저 표현식을 쓸일은 없을테니 그냥 이런게 있다는것만 알아두고 넘어가자.



+ Recent posts