E D R , A S I H C RSS

작은자바이야기

1.

  • 바를 드리면 떻게 될까?
  • 2012 기 Java 디!

1.1. 가?

  • :
  • : , , , 민관, ,
    • 구나 가능다. 각 .
    • Java 기 문법 부 2 1
      • 론과 모두 다룰 므로 Java 경 다.
    • 밌겠다 -
    • 미로 .. 미로 를 다루는것 같던데. -

1.2. ?

  • 1

1.3. ?

1.4. ?

  • 는 Java 더 깊고 다
  • 다룰 법
    • Java Technology
    • Java 개발 경 및 빌드
    • Java 로그래밍
      • Java

      • AnnotationsGenerics

    • Java API

      • Servlet과 Servlet
      • Java 런
      • 력과

        • MVC (DB)
      • 브러리
    • Java 개발 방법론
      • 로그래밍


      • 개발

        • Mock
    • Android

1.5. 떻게?

  • 미나



    1. Effective Java Second Edition by Josh Bloch

1.6. ?

  • 배때 …?

1.6.1.

  • Java 개발 보고, 바른 Java 로그램 빠르고 깔끔게 구는데
  • Java를 로 다루만, Java 를 바
  • 그동 반론 미나를 , 더 practical고 pragmatic 는데 두고 .
  • 께 공부고 배

1.6.2.

  • 든 다 (바뿐만 고)들 보고,
  • 내가 구는게 가능 가능는 것부, 더 '' 구는게 가능
  • 디가 바로 개발 대로 봤냐라고 물볼때, ''라고 대답
  • (?)
  • "내가 무것 모른 1 1럼 그때 그 로 많" - 배 는가.

1.6.3.

  • 바를 가르는 것 더 배.
  • 것 뿐만 브러리, 바 개발 개발 더 빠르고 는 방법.
  • , mock

1.6.4.

  • 바보다 더 는데 능력 기 때문
  • 보다 더 고를
  • 공부란 것 게 많기 때문..

1.6.5. 민관

  • 라 더 다 를 다루는 기 때문 미가 .
  • 동들 까 듣 다.
  • TDD로 드를 보려다 -_-;;; 떻게 TDD로 , 떻게 리 듣고 .

1.6.6.

  • 게 공부보고 .
  • .
  • 게 보내기 .
    다..

2.


3.1. 2012 5 5


    • "무?", "떻게?", "?"를 고, 는 "무?", "떻게?" 기를 나다.
    • 들 각각 가 되 록, 또다른 견과 다.
  • "?" 디를 는 것 고, 게 동기부다.

3.1.1.


3.2. 2012 5 12

3.2.1.


  • static modifier 는데 다. static 부르는래 모든 가 static데 객 static 라는 다. object.method(message) -> MyType::method(object, method) 부 oop 기본라는 부 다. 근데 (self)가 들가는 것 것과 관련 ? -
  • static 다. StaticInitializer -

3.3. 2012 5 19

  • Singleton 과 lazy initialization 다.
    • synchronized modifier를 동기 공부다.
    • 동기 DCL 보고 Java 5 volatile modifier로 다.
  • Serializable ObjectOutput, ObjectInput , 공부다.
    • transient modifier는 VM 고, Externalizable 를 구, 다.
  • JNI라는 기법 브 라브러리를 다.
    • native modifier로 고, 링, 링 과 다.
  • 변객 다.
    • 변객 String 가 내부떻게 구되고, 떻게 다.
      • String 객 과 동 다.

3.3.1.

  • String객..! 는데 뭔가 그 를 들 ..-
  • c++ 관련로 mutex나 critical section같 는데 는 synchronized를 다는게 다. os 래 됐는데 멀 다. 만 붙 는게 고 보 synchronized(this){ ... } 같 드를 고가 될 것 같다. 그리고 를 보 면 구 드러나게 다는 볼만다. -
  • 로 synchronized는 몰라 그냥 붙단 된다는 만 막게 가는데 그런 부 게 다 듣기 다. 그래다는 고 단 는 그래 던 만 다룰 범를 괜 다. - 민관

3.4. 2012 5 26

  • interface
  • nested class
    • static nested class
    • inner class
    • annonymous inner class
  • updw (cohesion&coupling)
  • SOLID SOLID Wiki
    • SRP (Single responsibility principle)
    • OCP (Open/closed principle)
    • LSP (Liskov substitution principle)
    • ISP (Interface segregation principle)
    • DIP (Dependency inversion principle)
  • DRY DRY Wiki

3.4.1.

  • 6 나고 늘 뭐 배더라.. 는 느낌 --; 반밖 못들.. 기는 각나만 나머는 뭔가 보다 더 기갔다 기갔다 는 바람 머리가 나봐;; -
  • 로 다른 는 볼 문법 + 객 로 다룬 다. 다른 기들(builder , 권)만 그래 다룬 는 명다고 다. 다만 그 떻게 느냐는 릿 느낌다. 그 나 interface, 객 느낌 는 경 기 때문 닌가 다 ;;; 가 말 대로 다는 말 . 그리고 기를 들 드가 각나 느낌 다. 미나를 들 드를 까 고 될 부 는군. 그래대로 드를 깔끔 보려고 리를 는데 더 게 많 느낌다. ㅠㅠ 그 던 메 는가(객 or 메드) 라 무 겁내 말라는 기는 뚜렷 다. . DIP Logic과 native API 를 두는 것 는데 기가 되면 꼭 드로 보고 다. 보게 되겠만. - 민관

3.5. 2012 6 2

  • Serialize
    • Abstraction layer
  • Inner Class, Nested Class(보강), Local Class, Static Inner Class
  • Iterator (java.util)
    • 리가 는 interface
    • generics
    • Collection , , 대부 료구 O(1), 변경 thread safe
    • but 그닥
  • Iterable (java.lang)
  • Iterator 과 Iterable 공부
  • Comparable
    • for Sorting.. stable, unstable

3.5.1.


  • Inner Class Nested Class 각각 들 Encapsulation라던가 , , 다. 만 Event들러라던가 길때 . Inner Class this는 Inner Class를 뜻다. 그렇기 때문 Inner Class를 는 Class this(를 뜻) 려면 .this를 붙면 됩다. Iterator는 Util만 Iterable java.lang ( 기본 type java.lang다) 는데 interface를 (index)를 근 과는 다른 Iterator를 Java게 만들게 된것다. 로 DB List를 로딩는것 100만개 다면 난 과부를 겪게되고 Loading또 느립다. 로 보 Loading또 게 되. Iterator는 Loading 다. 라브러리 게 되면 것 같 개념 iterator를 itrable로 Java는 기본 로 Iterable Custom게 구는 것 나 고 :) 바는 대단다=ㅂ= Generic과 Sorting 다른 . -

3.6. 2012 7 20

  • Java Generics
    • run-time type erasure
      • 로그래머
  • Reflection API
    • parameter 는 방법 .
      • public field
      • getter, setter가 는 field
      • @property annotation
  • Generics Reflection ObjectMapper 만들기
    • Map <-> Object 변

3.6.1.

  • map -> object object -> map 는 부 다. 내 변 getClass, getFields, getMethods를 private, 나 는 경 다. getter를 get는 다른 method.getParameterTypes().length == 0 같 렇게 된다는 부 관련 것 같다. 그리고 mapToObject는 문만 objectToMap type erase때문 Class<T> expectedType = T.class; 같 드를 map.put(field.getName(), (T)field.get(obj)); 로 Class<T> valueType 고 valueType.isAssignableFrom(field.getType())로 는 부 공부가 많다. -

3.7. 2012 7 27

  • Annotation
    • Annotation
      • 다른 Annotation 가능.
      • @Target : 만들고 는 Annotation . (ElementType.TYPE, ElementType.METHOD)
      • @Retention Annotation보가 부. (RetentionPolicy.RUNTIME)
  • 부 라브러리
    • java.beans
      • Introspector : BeanInfo로 만들 .
      • BeanInfo, PropertyDescriptor getter, setter 근 가능
    • apache.commons.lang
      • util . 결과가 나.
      • google guava는 .
      • 는 generics가 . static method로는 .

3.7.1.

  • prototype 명 때 그랬만 먼 개념 기본 떻게 되를 먼 기능들 로 더 는 라브러리는 떤 것들 까 그냥 라브러리만 는 것보다 것 같다. 브러리들 떤게 더 많 가르다. Annotation 기만 는데 렇게 만들각보다 것 같다. -

3.8. 2012 8 3

  • ObjectMapper (cont.)
    • Class mapping by annotation
      • Annotation on concrete class
      • Annotation on superclass
      • Initilize ObjectMapper at runtime
    • Scan annotated classes in package
    • Pros and cons to use annotations
    • Concurrency
      • java.util.concurrent(.atomic)
    • LRU cache using LinkedHashMap

3.9. 2012 8 17

  • ObjectMapper (cont.)
    • Data 부 리 - 내부 FactoryMethod . factory를 다. new를 기 때문 다.
      • CsvData - data . 내부 .
  • Maven - (dependency) 관리 . pom.xml 관련 보를 (repository) 관련 라브러리 빌드 다.
    • m2e plugin - maven과 eclipse는 빌드를 다른 방기 때문 maven eclipse 는 plugin.
    • 브러리 (jar) 만들기(Run as -> Maven Install) - ObjectMapper를 라브러리 리.
      • Windows7 기\.m2\groupid\artifactid jar 만들 다.
      • 는 라브러리 보를 pom.xml maven build를 .
    • Maven Build 과
      • resources - src/main/resources target/classes로 달. javac를 는다.
      • mvn compile - src/main/java .class를 만들 target/classes로 보낸다.
      • test-resourecs - src/test/resources target/test-classes로 달.
      • mvn test - 고 나 src/test/java를 target/test-classes로. @Test <scope>가 되는
      • mvn package - . pom.xml <packaging> 따른 . 기본 jar .
      • mvn install - , pom .m2/repository 는다.
      • mvn deploy - 리모브러리 .
      • mvn release
    • resolve dependencies from workspace projects
      • 브러리 변경 maven install 다.
      • 가 되 maven 개로 다.
      • maven 가 발 다.

3.10. 2012 9 22

  • Properties
    • map과 .
      • 를 getProperty get 두 가다.
      • getProperty는 String, get Object를 반 - 는 Object를 는데 는 값 String기 때문 getProperty를 따로 .
  • Reader InputStream
    • 딩 문 . 딩 문 Reader, Writer를 만들다. Reader는 보를 들고 다.
  • JDBC - 각 데
    • java.sql.driver 를 com.mysql.jdbc.driver 로 구, java.sql.connection 를 com.mysql.jdbc.connection 로 구
      • driver connection 는 부는 abstract factory가 됨 - 로부 만든다.

java.sql.Driver driver = new com.mysql.jdbc.Driver();
java.sql.Connection conn = driver.connect("", null); // 구  com.mysql.jdbc.connection.
// driver로부  conn 
  • abstract factory를 api가 다.
  • Statement, ResultSet abstract factory가 됨.
  • driver new com.mysql.jdbc.Driver(); 대 는 Class.forName("com.mysql.jdbc.Driver"); 드는 로 바꾼 것다.

Driver driver = new com.mysql.jdbc.Driver(); // 로 new를 는 대

Class<Driver> clazz = (Class<Driver>) Class.forName("com.mysql.jdbc.Driver");
Driver driver = clazz.newInstance(); // 같 방법로 런 로 바꿀  .
  • 로 밀낸 것기 때문 는 더 다.
  • factory method - factory를 는 메드. 뭘 만들만 가고 결. 는 문 따라("com.mysql.jdbc.Driver") 무 만들가 결된다.
  • DriverManager driver를 가 connection 바로 connection 다. 렇게 DataSource .
  • sqlite
    • dbms 다르게 dbms가 각 내부는 것.
    • os단 기 때문 다. 따라 다.

3.11. 2012 10 6

  • DataSource DriverManager
    • DataSourceDriverManager보다 많 (많 set 공)
    • DataSource가 더 가능
    • DriverManager 것들만 .
  • Persistence Layer
    • persistance layer는 를 많 기 때문 가 많 김.
    • 라가게 됨.
    • 라가게 될 경 는 것 다.
  • DataBase (Normalize)
    • 블로 복된 값 는 경는 경 다른 되기 때문 다.
    • 복된 값 는 경 는 부 므로 다.
    • 반대로 데 들고 검 난다.
    • .
    • 복된 값 다.
  • Builder
    • 빌더라는 가변객를 만들 변경 만든다. 그래 된다. 가변닝 방.


Resource resource = new JdbcResource.Builder()
.setUrl("jdbc:mysql://zeropage.org:3306/test")
.setUser("test")
.setPassword("test")
.setTable("people")
.create();
  • 문법 가며 는 방 다.
  • 따로 빼내기 고, set private로 바꿔 변객를 만들 다. 렇게 다.
  • 문법 - 다.

3.12. 2012 10 20

  • uri url
    • uniform resource identifier locatord . uri가 url보다 더 개념다.
    • map 료를 가 equals로 교를 때 url 로 가 고 uri는 가 같다.
    • url equals는 교를 려면 료를 가 기 때문 다. 따라 료가 같 만 url 는 것 다.
    • url과 uri는 로 toURI, toURL 다.
    • uri url보다 더 다.
  • abstract factory과 factory method
    • 드를 , 메가는 두 가되는 는 경 abstract factory
    • 되는 될 경 factory method
  • abstract factory는 다. 는 api 기 때문 기 때문 는다.
  • PushbackInputStream
    • lookahead inputstream. 기 input stream read면 끝나만 lookahead 를 가 read read 로 돌 다.
    • 는 inputstream 많기 때문 결과를 inputstream로 만들 리가 다.
  • strategy , command , template method
    • 다.
    • strategy - command
      • strategy (logic) 고 그 략 객다.
        반면 command 따로 고 보다 범된다.
    • strategy - template method
      • strategy 로 만들략 객 를 구(implementation)는 방 다.
        반면 template method 부모 만들 두고 는 메드를 + 다.

3.13. 2012 11 3

  • ~let : 관리로그램. 드로 activity같 게 됨. 그것과 것.
    • applet : (브라)가는 로그램.
    • servlet : 가는 로그램. ( http request가 날 .)럼 만들 것.
    • portlet : (관리로그램 )가는 로그램.
  • javaSE, javaEE : java .
    • javaSE : JLS(java language specification) + java api를 가리. 문법과 기본 기능들. 로는 hotspot JVM 다.
    • javaEE : SE 다 모 javaEE라고 . javaSE 기능들감. javaEE servlet다. 로는 tomcat과 glassfish가 다. tomcat servlet 만 만고 javaEE 만 glassfish는 javaEE 모든 다.
    • tomcat servlet container만 glassfish는 WAS(web application server) 다.
  • DIP (depencency inversion principle) : 구 때 구 는 디 .
    • JPA 로 eclipse link hibernate가 는데, 각각 때 구 고 JPA 면 나 를 바꾸기 다.
  • tomcat servlet 내부
    • tomcat servlet는 것 servlet를 tomcat 는 것다. java tomcat 가된 로딩 다.
    • servlet war(web archive) 면 tomcat내부 watcher가 war 보를 가된 를 동로 로딩 다.
    • servlet 로딩 : jvm tomcat main 로딩다 -> deployment description 급되는 servlet를 tomcat 로딩다.
  • servlet
    • template method 됐다. protected로 된 service method가 template method 당되는데 abstract가 는 기본 구 드를 다.
    • init : servlet 면 먼 되는 method. init 면 servlet 로딩되 는다.
    • destoy : servlet 료될 되는 method.
    • service : 로 request가 들 servlet service method를 . service(req, res) 내부 req를 request res 변경 부로 내보내다. 당 결과를 do* method(doGet, doPost )로 다.
    • do* : 당 httpMethod 리를 는 method.

3.14. 2012 11 10

  • jar war
    • war : src/main 는 webapp 더 내부 root로 게 된다.
      • src/main/java, src/main/resources 가 war WEB-INF 더 내부 classes 내부 게 된다.
    • jar : src/main/java, src/main/resources 더가 root로 게 된다.
  • http servlet 달되기까
    • http(http://hostname/contextPath/path?params) -> contextPath를 보고 는 war를 -> war 내부 web.xml 보고 <servlet-mapping> 보를 보고 된 servlet 는다. -> 는 servlet defalut servlet
  • servlet filter chain
    • request가 servlet달되기 filter chain 러 servlet .
    • request -> Servlet Container -> Filter -> Servlet
    • response <- Servlet Container <- Filter <- Servlet
  • servlet thread safety
    • servlet thread per request 구 servlet 객러개 되는 구.
    • filter, servlet 를 url 는 것. 따라 thread-safe 다.
    • thread-safe는 stateful 된다. Servlet stateless더라 내부 stateful를 들고 면 결국 stateful게 된다. 므로 .
    • 리 방법 : 공되는 변 말고 ,
      ThreadLocal 다. ThreadLocal로 다른 객를 들고 다.

3.15. 2012 12 23

  • IME(Input Method Editor) - OS key code - 문 mapping과 문 ('ㅁ' + 'ㅏ' 같) 리를 . Sublime대로 리를 다...
  • JNI(Java Native Interface)
    • Java 다른 (C)로 된 라브러리를 동 는 방법.
    • load 과 는 기.
    • .java native modifier를 붙드를 고, .c, .cpp 는 Java 다. System.loadLibrary(...) .dll (Windows) 또는 .so(shared object) (Linux)로 로드다.
      • 브러리 naming convention 고, 반드 몇몇 다. 또 Java C, C++ 다. 당 구 jni.h 다.
      • 는 naming convention 기는 귀기 때문 native를 가 .class javah 면 convention .h 만들 다.
      • .cpp 는 extern "C"는 (__cdecl, __stdcall)과 관련된 부다. extern "C"를 는 것로 __cdecl로 다.

3.16. 2013 1 6

  • JVM & Java Byte Code
    • JVM - stack-based machine
      • register-based machine과 되는 operand . register-based는 register operand를 가고 stack-based는 stack pop다.
      • stack-based machine register-based machine push, pop 느리만 register를 는 경 기기다.
      • 명령 prefix로 다. http://en.wikipedia.org/wiki/Java_bytecode#Instructions
      • invoke* 명령
        • invokespecial - vtable lookup 고 메드를 는 경. 떤 메드를 는 경 된다. new, private method, super .
        • invokevirtual - vtable lookup 다. 고 메드를 는 경. 대부드들 다.
        • invokestatic - static 메. 로 this를 는다.
        • invokeinterface - virtual과 같다. interface드를 는 경 다.
      • if문 - if*과 if_*류로 나뉜다.
        • if* - operand를 나만 0과 는 경가 대부다. ifeq(0과 같), ifne(0 님) 명령다.
        • if_* - stack 두 개 operand를 꺼내 는 경 된다. if_icmpeq( 값 두 개를 같 교) 명령다.

  • 11 10 둘? -
    • 바꾸는 까먹듯 ;;; - 민관

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:42
Processing time 0.0915 sec