├── 모던__리눅스_관리
├── 1장
│ └── 리눅스 _기본
└── README.md
├── .gitignore
├── 이펙티브 자바
├── effectiveJava
│ ├── src
│ │ ├── test
│ │ │ ├── resources
│ │ │ │ └── input.txt
│ │ │ └── java
│ │ │ │ ├── Chap4_ClassAndInterface
│ │ │ │ ├── item15
│ │ │ │ │ └── MemberTest.java
│ │ │ │ ├── item19
│ │ │ │ │ └── SubTest.java
│ │ │ │ ├── item18
│ │ │ │ │ └── callbackExample
│ │ │ │ │ │ └── CallerTest.java
│ │ │ │ ├── item17
│ │ │ │ │ ├── AlbumTest.java
│ │ │ │ │ └── BigBigIntegerTest.java
│ │ │ │ └── vending
│ │ │ │ │ └── VendingTest.java
│ │ │ │ ├── Chap12_Serialization
│ │ │ │ └── item86
│ │ │ │ │ └── readNoData
│ │ │ │ │ └── serializeSub.txt
│ │ │ │ ├── Chap5_Generic
│ │ │ │ ├── item32
│ │ │ │ │ └── DontSaveTest.java
│ │ │ │ ├── VarArgsCalculatorTest.java
│ │ │ │ ├── item33
│ │ │ │ │ └── MachineTest.java
│ │ │ │ ├── item30
│ │ │ │ │ ├── LottePayCardTest.java
│ │ │ │ │ ├── NotImmutableMapTest.java
│ │ │ │ │ ├── ToStringTest.java
│ │ │ │ │ └── GenericMethodTest.java
│ │ │ │ ├── ArrayStackTest.java
│ │ │ │ └── item31
│ │ │ │ │ └── Test.java
│ │ │ │ ├── Chap6_EnumTypeAndAnnotation
│ │ │ │ ├── item37
│ │ │ │ │ ├── PhaseTest.java
│ │ │ │ │ ├── CustomContainerTest.java
│ │ │ │ │ └── LifeCycleTest.java
│ │ │ │ ├── item35
│ │ │ │ │ └── EnsembleTest.java
│ │ │ │ ├── item34
│ │ │ │ │ ├── PlanetTest.java
│ │ │ │ │ └── EnumTest.java
│ │ │ │ └── item36
│ │ │ │ │ └── TextTest.java
│ │ │ │ ├── Chap9_GeneralProgrammingPrinciple
│ │ │ │ └── item64
│ │ │ │ │ └── ValueObjectTest.java
│ │ │ │ ├── bit
│ │ │ │ └── TextTest.java
│ │ │ │ ├── Chap11_Concurrency
│ │ │ │ └── item83
│ │ │ │ │ ├── CircularityTest.java
│ │ │ │ │ └── CircularityTest2.java
│ │ │ │ ├── Chap7_LambdaAndStream
│ │ │ │ ├── item45
│ │ │ │ │ ├── AnagramsTest.java
│ │ │ │ │ └── StreamAPIExample.java
│ │ │ │ └── item44
│ │ │ │ │ └── ExecutorTest.java
│ │ │ │ ├── Chap3_CommonMethodOfObject
│ │ │ │ ├── item12
│ │ │ │ │ └── BigIntegerTest.java
│ │ │ │ ├── item14
│ │ │ │ │ ├── point
│ │ │ │ │ │ └── view
│ │ │ │ │ │ │ └── PointTest.java
│ │ │ │ │ └── hash
│ │ │ │ │ │ └── HashObjectTest.java
│ │ │ │ └── item13
│ │ │ │ │ └── SubTest.java
│ │ │ │ ├── Chap10_Exceptions
│ │ │ │ └── item74
│ │ │ │ │ └── LowLevelExceptionTest.java
│ │ │ │ └── Chap2_GenerateObjectAndDestroy
│ │ │ │ └── item1
│ │ │ │ └── StaticFactoryMethodTest.java
│ │ ├── main
│ │ │ └── java
│ │ │ │ ├── Chap7_LambdaAndStream
│ │ │ │ ├── item42_44
│ │ │ │ │ ├── Fruit.java
│ │ │ │ │ ├── image
│ │ │ │ │ │ ├── fail.png
│ │ │ │ │ │ ├── lambda.png
│ │ │ │ │ │ ├── sort.png
│ │ │ │ │ │ └── abstract.png
│ │ │ │ │ ├── Lambda.java
│ │ │ │ │ ├── OperationTest.java
│ │ │ │ │ ├── OperationLambda.java
│ │ │ │ │ └── FruitCollection.java
│ │ │ │ ├── item45
│ │ │ │ │ ├── Anagrams.java
│ │ │ │ │ └── JavaBomStream.java
│ │ │ │ ├── item47
│ │ │ │ │ ├── StreamMapping.java
│ │ │ │ │ └── CollectionBetter.java
│ │ │ │ ├── item46
│ │ │ │ │ └── StreamSideEffect.java
│ │ │ │ └── item48
│ │ │ │ │ └── Parellel.java
│ │ │ │ ├── Chap10_Exceptions
│ │ │ │ ├── item71
│ │ │ │ │ ├── UserInfo.java
│ │ │ │ │ ├── Point.java
│ │ │ │ │ ├── Engine.java
│ │ │ │ │ ├── LolClient.java
│ │ │ │ │ └── Car.java
│ │ │ │ ├── item74
│ │ │ │ │ ├── LowLevelException.java
│ │ │ │ │ └── HighLevelException.java
│ │ │ │ └── item69
│ │ │ │ │ └── OptimizationException.java
│ │ │ │ ├── Chap5_Generic
│ │ │ │ ├── item28
│ │ │ │ │ ├── image
│ │ │ │ │ │ ├── 비검사경고.png
│ │ │ │ │ │ └── list-get.png
│ │ │ │ │ └── VarArgsCalculator.java
│ │ │ │ ├── item32
│ │ │ │ │ ├── DontSave.java
│ │ │ │ │ ├── Machine.java
│ │ │ │ │ ├── Machine2.java
│ │ │ │ │ └── Dangerous.java
│ │ │ │ ├── item30
│ │ │ │ │ ├── ToString.java
│ │ │ │ │ ├── GenericMethod.java
│ │ │ │ │ ├── NotImmutableMap.java
│ │ │ │ │ ├── PayCard.java
│ │ │ │ │ └── LottePayCard.java
│ │ │ │ ├── item31
│ │ │ │ │ └── Stack.java
│ │ │ │ └── item29
│ │ │ │ │ ├── ArrayStack.java
│ │ │ │ │ └── GenericStack.java
│ │ │ │ ├── Chap6_EnumTypeAndAnnotation
│ │ │ │ ├── item37
│ │ │ │ │ ├── LifeCycle.java
│ │ │ │ │ ├── Plant.java
│ │ │ │ │ └── CustomContainer.java
│ │ │ │ ├── item38
│ │ │ │ │ ├── Operation.java
│ │ │ │ │ ├── TypeSafeEnumerationExample.java
│ │ │ │ │ ├── Apple.java
│ │ │ │ │ ├── ExtendedOperation.java
│ │ │ │ │ └── BasicOperation.java
│ │ │ │ ├── item34
│ │ │ │ │ ├── EnumRuntimeTest.java
│ │ │ │ │ └── WeekDay.java
│ │ │ │ ├── item35
│ │ │ │ │ └── Ensemble.java
│ │ │ │ ├── item36
│ │ │ │ │ ├── Text.java
│ │ │ │ │ └── StyleWithBitField.java
│ │ │ │ ├── item39
│ │ │ │ │ ├── repeatable
│ │ │ │ │ │ ├── Repeatable.java
│ │ │ │ │ │ ├── ExceptionTestContainer.java
│ │ │ │ │ │ └── ExceptionTest.java
│ │ │ │ │ ├── sample2
│ │ │ │ │ │ ├── CustomExceptionTest.java
│ │ │ │ │ │ └── Sample2.java
│ │ │ │ │ └── sample
│ │ │ │ │ │ └── CustomTest.java
│ │ │ │ └── item40
│ │ │ │ │ └── README.md
│ │ │ │ ├── Chap9_GeneralProgrammingPrinciple
│ │ │ │ ├── item64
│ │ │ │ │ ├── InsteadOfInterface.java
│ │ │ │ │ ├── vo
│ │ │ │ │ │ ├── Player.java
│ │ │ │ │ │ └── Name.java
│ │ │ │ │ ├── ValueObject.java
│ │ │ │ │ └── SpecialMethod.java
│ │ │ │ ├── item59
│ │ │ │ │ └── RandomTest.java
│ │ │ │ ├── item60
│ │ │ │ │ └── BuyCandy.java
│ │ │ │ ├── item62
│ │ │ │ │ ├── MyThreadLocal.java
│ │ │ │ │ ├── ThreadLocalUseKey.java
│ │ │ │ │ └── RealMyThreadLocal.java
│ │ │ │ └── item57
│ │ │ │ │ └── ExpensiveLoop.java
│ │ │ │ ├── Chap2_GenerateObjectAndDestroy
│ │ │ │ ├── item1
│ │ │ │ │ └── constructor
│ │ │ │ ├── item7
│ │ │ │ │ ├── Connection.java
│ │ │ │ │ ├── vo
│ │ │ │ │ │ ├── DBConnection.java
│ │ │ │ │ │ └── ResultSet.java
│ │ │ │ │ └── DatabaseManager.java
│ │ │ │ ├── finalizer
│ │ │ │ │ └── SuperVulnerableFoo.java
│ │ │ │ └── item5
│ │ │ │ │ └── LambdaFactory.java
│ │ │ │ ├── Chap4_ClassAndInterface
│ │ │ │ ├── item16
│ │ │ │ │ ├── Product.java
│ │ │ │ │ └── Client.java
│ │ │ │ ├── item24
│ │ │ │ │ ├── anonymous
│ │ │ │ │ │ ├── creature
│ │ │ │ │ │ │ ├── Creature.java
│ │ │ │ │ │ │ ├── CreatureInterface.java
│ │ │ │ │ │ │ └── AbstractCreature.java
│ │ │ │ │ │ ├── Animal.java
│ │ │ │ │ │ └── AnonymousClient.java
│ │ │ │ │ ├── NestedStaticExample.java
│ │ │ │ │ ├── Calculator.java
│ │ │ │ │ └── local
│ │ │ │ │ │ └── LocalExample.java
│ │ │ │ ├── vending
│ │ │ │ │ ├── Vending.java
│ │ │ │ │ ├── VendingManufacturer.java
│ │ │ │ │ ├── BaverageVending.java
│ │ │ │ │ ├── OnlyVending.java
│ │ │ │ │ ├── AbstractVending.java
│ │ │ │ │ └── CoffeeVending.java
│ │ │ │ ├── item18
│ │ │ │ │ ├── callbackExample
│ │ │ │ │ │ └── callbackJava
│ │ │ │ │ │ │ ├── JavaBom.java
│ │ │ │ │ │ │ ├── SetTimeOut.java
│ │ │ │ │ │ │ ├── SelfProblemMain.java
│ │ │ │ │ │ │ ├── ObjectNotBindExample.java
│ │ │ │ │ │ │ └── ObjectExample.java
│ │ │ │ │ ├── self
│ │ │ │ │ │ ├── SomethingWithCallback.java
│ │ │ │ │ │ ├── WrapperEdit.java
│ │ │ │ │ │ ├── WrappedObject.java
│ │ │ │ │ │ ├── SomeService.java
│ │ │ │ │ │ └── Wrapper.java
│ │ │ │ │ ├── Service.java
│ │ │ │ │ ├── self2
│ │ │ │ │ │ ├── Model.java
│ │ │ │ │ │ ├── Controller.java
│ │ │ │ │ │ └── ModelChangesCounter.java
│ │ │ │ │ └── InstrumentedSet.java
│ │ │ │ ├── item25
│ │ │ │ │ ├── duplicate
│ │ │ │ │ │ ├── dessert
│ │ │ │ │ │ │ └── Dessert.java
│ │ │ │ │ │ └── utensil
│ │ │ │ │ │ │ └── Utensil.java
│ │ │ │ │ ├── staticmember
│ │ │ │ │ │ └── Utensil.java
│ │ │ │ │ └── README.md
│ │ │ │ ├── item19
│ │ │ │ │ ├── Super.java
│ │ │ │ │ ├── Sub.java
│ │ │ │ │ ├── SerializableSubFoo.java
│ │ │ │ │ └── SerializableFoo.java
│ │ │ │ ├── item20
│ │ │ │ │ ├── CustomMapEntry.java
│ │ │ │ │ └── CustomAbstractMapEntry.java
│ │ │ │ ├── item15
│ │ │ │ │ ├── Subject.java
│ │ │ │ │ └── Member.java
│ │ │ │ ├── item22
│ │ │ │ │ └── README.md
│ │ │ │ ├── item17
│ │ │ │ │ ├── Album.java
│ │ │ │ │ └── BigBigInteger.java
│ │ │ │ └── item23
│ │ │ │ │ └── README.md
│ │ │ │ ├── bit
│ │ │ │ ├── Plant.java
│ │ │ │ └── Text.java
│ │ │ │ ├── Chap12_Serialization
│ │ │ │ ├── item86
│ │ │ │ │ ├── proxy
│ │ │ │ │ │ ├── Super.java
│ │ │ │ │ │ └── Sub.java
│ │ │ │ │ ├── Sample.java
│ │ │ │ │ └── readNoData
│ │ │ │ │ │ ├── Sub.java
│ │ │ │ │ │ └── Super.java
│ │ │ │ ├── item85
│ │ │ │ │ ├── Unknown.java
│ │ │ │ │ ├── accept
│ │ │ │ │ │ └── Accept.java
│ │ │ │ │ ├── reject
│ │ │ │ │ │ └── Reject.java
│ │ │ │ │ └── HashGraph.java
│ │ │ │ └── item88
│ │ │ │ │ └── Period.java
│ │ │ │ ├── Chap11_Concurrency
│ │ │ │ ├── item79
│ │ │ │ │ ├── SetObserver.java
│ │ │ │ │ ├── Test2.java
│ │ │ │ │ └── Test1.java
│ │ │ │ ├── item82
│ │ │ │ │ ├── LoggingWidget.java
│ │ │ │ │ ├── ReentrantLockExample.java
│ │ │ │ │ └── Widget.java
│ │ │ │ ├── item83
│ │ │ │ │ ├── Lazy.java
│ │ │ │ │ └── Circularity.java
│ │ │ │ ├── item78
│ │ │ │ │ └── StopThread.java
│ │ │ │ └── item80
│ │ │ │ │ └── ScheduledThreadPoolExecutorTest.java
│ │ │ │ ├── Chap3_CommonMethodOfObject
│ │ │ │ ├── item10
│ │ │ │ │ ├── lock
│ │ │ │ │ │ ├── Account.java
│ │ │ │ │ │ ├── AsynchronousAccount.java
│ │ │ │ │ │ └── SynchronizedAccount.java
│ │ │ │ │ ├── infiniteRecursion
│ │ │ │ │ │ ├── Main.java
│ │ │ │ │ │ ├── SmellPoint.java
│ │ │ │ │ │ ├── Point.java
│ │ │ │ │ │ └── ColorPoint.java
│ │ │ │ │ ├── canonicalForm
│ │ │ │ │ │ ├── Main.java
│ │ │ │ │ │ └── CaseInsensitiveString.java
│ │ │ │ │ └── containsJDK
│ │ │ │ │ │ ├── CaseInsensitiveString.java
│ │ │ │ │ │ └── Main.java
│ │ │ │ ├── item12
│ │ │ │ │ ├── PhoneNumber.java
│ │ │ │ │ └── PhoneNumberOverrideToString.java
│ │ │ │ ├── item11
│ │ │ │ │ ├── PhoneNumberOverrideHash.java
│ │ │ │ │ └── PhoneNumber.java
│ │ │ │ ├── item13
│ │ │ │ │ ├── Sub.java
│ │ │ │ │ └── Sup.java
│ │ │ │ └── item14
│ │ │ │ │ ├── compare
│ │ │ │ │ └── Position.java
│ │ │ │ │ ├── point
│ │ │ │ │ └── adater
│ │ │ │ │ │ ├── Point.java
│ │ │ │ │ │ └── ColorPoint.java
│ │ │ │ │ ├── RawSerialCompare.java
│ │ │ │ │ └── ComparatorConstructor.java
│ │ │ │ └── Chap8_Method
│ │ │ │ ├── item49
│ │ │ │ └── Assertion.java
│ │ │ │ └── item55
│ │ │ │ ├── Member.java
│ │ │ │ └── MemberRepository.java
│ │ └── jmh
│ │ │ └── java
│ │ │ └── chap9
│ │ │ └── BenchmarkMain.java
│ ├── settings.gradle
│ └── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
└── README.md
├── spring-toby
├── java-project
│ ├── src
│ │ ├── test
│ │ │ ├── resources
│ │ │ │ └── chapter3
│ │ │ │ │ └── calcSample.txt
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── javabom
│ │ │ │ └── toby
│ │ │ │ ├── chapter1
│ │ │ │ └── term
│ │ │ │ │ └── 제어의_역전
│ │ │ │ │ └── IoCContainerTest.java
│ │ │ │ └── chapter3
│ │ │ │ └── pattern
│ │ │ │ └── 템플릿_콜백_패턴
│ │ │ │ └── CalculatorTest.java
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── javabom
│ │ │ └── toby
│ │ │ ├── chapter1
│ │ │ ├── pattern
│ │ │ │ ├── 싱글톤_패턴
│ │ │ │ │ ├── User.java
│ │ │ │ │ └── Connection.java
│ │ │ │ ├── 추상_팩토리_패턴
│ │ │ │ │ ├── LotteCard.java
│ │ │ │ │ ├── SamsungCard.java
│ │ │ │ │ ├── LotteCardApp.java
│ │ │ │ │ ├── SamsungCardApp.java
│ │ │ │ │ ├── Card.java
│ │ │ │ │ ├── CardApp.java
│ │ │ │ │ ├── CardFactory.java
│ │ │ │ │ ├── LotteCardFactory.java
│ │ │ │ │ ├── SamsungCardFactory.java
│ │ │ │ │ └── CardClient.java
│ │ │ │ ├── 전략_패턴
│ │ │ │ │ ├── ConnectionManager.java
│ │ │ │ │ ├── DConnectionManager.java
│ │ │ │ │ ├── NConnectionManager.java
│ │ │ │ │ ├── UserDao.java
│ │ │ │ │ └── UserDaoTest.java
│ │ │ │ ├── 팩토리_메소드_패턴
│ │ │ │ │ ├── DeluxePizza.java
│ │ │ │ │ ├── SeafoodPizza.java
│ │ │ │ │ ├── HamAndMushroomPizza.java
│ │ │ │ │ └── Pizza.java
│ │ │ │ ├── 템플릿_메소드_패턴
│ │ │ │ │ ├── Super.java
│ │ │ │ │ ├── SubWithoutHook.java
│ │ │ │ │ └── SubWithHook.java
│ │ │ │ └── 팩토리_메소드
│ │ │ │ │ └── Card.java
│ │ │ └── term
│ │ │ │ └── 제어의_역전
│ │ │ │ ├── UserRepository.java
│ │ │ │ ├── JavabomUserRepository.java
│ │ │ │ ├── UserService.java
│ │ │ │ └── IoCContainer.java
│ │ │ ├── chapter3
│ │ │ └── pattern
│ │ │ │ └── 템플릿_콜백_패턴
│ │ │ │ ├── LineCallback.java
│ │ │ │ └── Calculator.java
│ │ │ └── chapter2
│ │ │ └── 테스트
│ │ │ └── Car.java
│ └── build.gradle
├── settings.gradle
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── spring-project
│ ├── src
│ │ ├── main
│ │ │ ├── resources
│ │ │ │ ├── book.xml
│ │ │ │ ├── setup-sql.sql
│ │ │ │ ├── sqlmap.xml
│ │ │ │ └── sqlmap.xsd
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── javabom
│ │ │ │ └── toby
│ │ │ │ ├── chapter1
│ │ │ │ ├── term
│ │ │ │ │ ├── IoC_용어정리
│ │ │ │ │ │ ├── User.java
│ │ │ │ │ │ ├── Pencil.java
│ │ │ │ │ │ ├── UserRepository.java
│ │ │ │ │ │ ├── BasicPencil.java
│ │ │ │ │ │ ├── DefaultUserRepository.java
│ │ │ │ │ │ ├── UserService.java
│ │ │ │ │ │ └── NoIoCPersion.java
│ │ │ │ │ ├── 싱글톤_용어정리
│ │ │ │ │ │ └── Singleton.java
│ │ │ │ │ └── di_장점_관심사의분리
│ │ │ │ │ │ ├── PaySystem.java
│ │ │ │ │ │ ├── KakaoPaySystem.java
│ │ │ │ │ │ ├── PaySystemConfiguration.java
│ │ │ │ │ │ └── LoggingPaySystem.java
│ │ │ │ └── issue
│ │ │ │ │ └── servlet
│ │ │ │ │ └── DefaultServlet.java
│ │ │ │ ├── chapter5
│ │ │ │ └── term
│ │ │ │ │ ├── 브릿지_패턴
│ │ │ │ │ ├── draw
│ │ │ │ │ │ ├── Draw.java
│ │ │ │ │ │ ├── BrushDraw.java
│ │ │ │ │ │ └── PencilDraw.java
│ │ │ │ │ ├── shape
│ │ │ │ │ │ ├── Shape.java
│ │ │ │ │ │ ├── Ellipse.java
│ │ │ │ │ │ └── Square.java
│ │ │ │ │ └── BridgePatternMain.java
│ │ │ │ │ └── 미디에이터패턴
│ │ │ │ │ ├── mediator
│ │ │ │ │ ├── AirMediator.java
│ │ │ │ │ └── Airport.java
│ │ │ │ │ ├── airplane
│ │ │ │ │ ├── Boeing.java
│ │ │ │ │ ├── JejuAir.java
│ │ │ │ │ └── AirPlane.java
│ │ │ │ │ └── MediatorPatternMain.java
│ │ │ │ ├── chapter6
│ │ │ │ └── term
│ │ │ │ │ ├── AopTestInterface.java
│ │ │ │ │ ├── 확장
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── Message.java
│ │ │ │ │ │ ├── TargetMessage.java
│ │ │ │ │ │ └── NonTargetMessage.java
│ │ │ │ │ └── 어드바이저
│ │ │ │ │ │ ├── MessageAdvisor.java
│ │ │ │ │ │ └── UpperMessageAdvice.java
│ │ │ │ │ ├── aop용어
│ │ │ │ │ ├── 데코레이터
│ │ │ │ │ │ ├── UserService.java
│ │ │ │ │ │ ├── UserServiceImpl.java
│ │ │ │ │ │ └── UserServiceLogImpl.java
│ │ │ │ │ ├── 프록시
│ │ │ │ │ │ ├── Message.java
│ │ │ │ │ │ ├── DetailMessage.java
│ │ │ │ │ │ └── MessageHandler.java
│ │ │ │ │ ├── 포인트컷
│ │ │ │ │ │ └── MessagePointcut.java
│ │ │ │ │ ├── 어드바이스
│ │ │ │ │ │ └── MessageAdvice.java
│ │ │ │ │ └── 팩토리빈
│ │ │ │ │ │ └── MessageFactoryBean.java
│ │ │ │ │ ├── AnotherAopUserService.java
│ │ │ │ │ └── AopUserService.java
│ │ │ │ ├── user
│ │ │ │ ├── connectionmaker
│ │ │ │ │ ├── ConnectionMaker.java
│ │ │ │ │ ├── TestDBConnectionMaker.java
│ │ │ │ │ └── LocalDBConnectionMaker.java
│ │ │ │ ├── dao
│ │ │ │ │ ├── StatementStrategy.java
│ │ │ │ │ └── DeleteAllStatement.java
│ │ │ │ └── User.java
│ │ │ │ ├── chapter3
│ │ │ │ ├── jdbc_템플릿_콜백_패턴
│ │ │ │ │ ├── StatementStrategy.java
│ │ │ │ │ ├── TobyUser.java
│ │ │ │ │ ├── UserDaoWithTemplateCallback.java
│ │ │ │ │ ├── Chapter3UserDao.java
│ │ │ │ │ └── JdbcContext.java
│ │ │ │ └── term
│ │ │ │ │ ├── 전략_패턴
│ │ │ │ │ ├── StatementStrategy.java
│ │ │ │ │ ├── DeleteAllStatement.java
│ │ │ │ │ └── GetCountStatement.java
│ │ │ │ │ ├── 중첩_클래스
│ │ │ │ │ ├── StatementStrategy.java
│ │ │ │ │ └── 익명_클래스
│ │ │ │ │ │ └── UserDao.java
│ │ │ │ │ └── 템플릿_메서드_패턴
│ │ │ │ │ ├── UserDaoDeleteAll.java
│ │ │ │ │ └── UserDaoGetCount.java
│ │ │ │ ├── chapter7
│ │ │ │ ├── 내장형_db
│ │ │ │ │ └── User.java
│ │ │ │ ├── xsd
│ │ │ │ │ └── package-info.java
│ │ │ │ └── oxm
│ │ │ │ │ └── Book.java
│ │ │ │ └── TobyApplication.java
│ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── javabom
│ │ │ └── toby
│ │ │ ├── chapter1
│ │ │ └── term
│ │ │ │ ├── 스코프
│ │ │ │ └── scope.http
│ │ │ │ └── di_장점_관심사의분리
│ │ │ │ └── LoggingPaySystemTest.java
│ │ │ ├── chapter6
│ │ │ └── term
│ │ │ │ └── aop용어
│ │ │ │ └── UserServiceTest.java
│ │ │ └── chapter3
│ │ │ └── jdbc_템플릿_콜백_패턴
│ │ │ └── TobyUserDaoTest.java
│ └── build.gradle
├── .gitignore
└── build.gradle
├── 객체지향의_사실과_오해
├── 3장
│ ├── 김민정_3장.pdf
│ └── 이민형_3장.md
├── 1장
│ ├── 박찬인_1장.md
│ └── 김민정_1장.md
├── 7장
│ ├── 최유성_7장.md
│ └── 서재연_7장.md
├── 부록
│ └── 최유성_부록.md
├── 4장
│ ├── 이민형_4장.md
│ └── 서재연_4징.md
├── 6장
│ ├── 최유성_6장.md
│ └── 박찬인_6장.md
└── 2장
│ └── 김민정_2장.md
└── .github
└── ISSUE_TEMPLATE
├── effective-java-question.md
├── spring-of-toby-question.md
├── kubernetes-introduction.md
├── the-essence-of-object-orientation.md
└── the-definitive-guide-to-spring-batch.md
/모던__리눅스_관리/1장/리눅스 _기본:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/모던__리눅스_관리/README.md:
--------------------------------------------------------------------------------
1 | ### 모던 리눅스 관리
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .gradle/
2 | .idea/
3 | build/
4 | **/out/
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/resources/input.txt:
--------------------------------------------------------------------------------
1 | hello=1
2 | member.dao=2
--------------------------------------------------------------------------------
/spring-toby/java-project/src/test/resources/chapter3/calcSample.txt:
--------------------------------------------------------------------------------
1 | 1
2 | 2
3 | 3
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'effectiveJava'
2 |
3 |
--------------------------------------------------------------------------------
/객체지향의_사실과_오해/3장/김민정_3장.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/객체지향의_사실과_오해/3장/김민정_3장.pdf
--------------------------------------------------------------------------------
/spring-toby/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'spring-toby'
2 | include 'java-project'
3 | include 'spring-project'
4 |
--------------------------------------------------------------------------------
/spring-toby/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/spring-toby/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/Fruit.java:
--------------------------------------------------------------------------------
1 | package Chap7_LambdaAndStream.item42_44;
2 |
3 | public class Fruit {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item45/Anagrams.java:
--------------------------------------------------------------------------------
1 | package Chap7_LambdaAndStream.item45;
2 |
3 | public class Anagrams {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/resources/book.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Book1
4 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/java/Chap4_ClassAndInterface/item15/MemberTest.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item15;
2 |
3 | class MemberTest {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item45/JavaBomStream.java:
--------------------------------------------------------------------------------
1 | package Chap7_LambdaAndStream.item45;
2 |
3 | public class JavaBomStream {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item47/StreamMapping.java:
--------------------------------------------------------------------------------
1 | package Chap7_LambdaAndStream.item47;
2 |
3 | public class StreamMapping {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/싱글톤_패턴/User.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.싱글톤_패턴;
2 |
3 | public class User {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/IoC_용어정리/User.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.IoC_용어정리;
2 |
3 | public class User {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item47/CollectionBetter.java:
--------------------------------------------------------------------------------
1 | package Chap7_LambdaAndStream.item47;
2 |
3 | public class CollectionBetter {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap10_Exceptions/item71/UserInfo.java:
--------------------------------------------------------------------------------
1 | package Chap10_Exceptions.item71;
2 |
3 | public class UserInfo {
4 | private String userId;
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item46/StreamSideEffect.java:
--------------------------------------------------------------------------------
1 | package Chap7_LambdaAndStream.item46;
2 |
3 | public class StreamSideEffect {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/싱글톤_용어정리/Singleton.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.싱글톤_용어정리;
2 |
3 | public class Singleton {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap10_Exceptions/item74/LowLevelException.java:
--------------------------------------------------------------------------------
1 | package Chap10_Exceptions.item74;
2 |
3 | public class LowLevelException extends Exception{
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/제어의_역전/UserRepository.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.제어의_역전;
2 |
3 | public interface UserRepository {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/LotteCard.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public class LotteCard extends Card {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/IoC_용어정리/Pencil.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.IoC_용어정리;
2 |
3 | public interface Pencil {
4 | void write();
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item28/image/비검사경고.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item28/image/비검사경고.png
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap6_EnumTypeAndAnnotation/item37/LifeCycle.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item37;
2 |
3 | public enum LifeCycle {
4 | ANNUAL, PERNNIAL, BIENNIAL
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap9_GeneralProgrammingPrinciple/item64/InsteadOfInterface.java:
--------------------------------------------------------------------------------
1 | package Chap9_GeneralProgrammingPrinciple.item64;
2 |
3 | public class InsteadOfInterface {
4 |
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/SamsungCard.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public class SamsungCard extends Card {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter5/term/브릿지_패턴/draw/Draw.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter5.term.브릿지_패턴.draw;
2 |
3 | public interface Draw {
4 | void draw();
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter6/term/AopTestInterface.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter6.term;
2 |
3 | public interface AopTestInterface {
4 | void test();
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item1/constructor/FooRepository.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item1.constructor;
2 |
3 | public class FooRepository {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item28/image/list-get.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item28/image/list-get.png
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/LotteCardApp.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public class LotteCardApp extends CardApp {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter6/term/확장/model/Message.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter6.term.확장.model;
2 |
3 | public interface Message {
4 | String getMessage();
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/SamsungCardApp.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public class SamsungCardApp extends CardApp {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/resources/setup-sql.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE TEST_USER(
2 | id varchar(100) primary key ,
3 | name varchar(100)
4 | );
5 |
6 | INSERT INTO TEST_USER VALUES ('jaeyeon.seo', '서재연');
7 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap6_EnumTypeAndAnnotation/item38/Operation.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item38;
2 |
3 | public interface Operation {
4 | double apply(double x, double y);
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/Card.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public class Card {
4 | public void pay() {
5 |
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/di_장점_관심사의분리/PaySystem.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.di_장점_관심사의분리;
2 |
3 |
4 | public interface PaySystem {
5 | void pay();
6 | }
7 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/fail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/fail.png
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/lambda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/lambda.png
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/sort.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/sort.png
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/싱글톤_패턴/Connection.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.싱글톤_패턴;
2 |
3 | public interface Connection {
4 | Object execute(String sql);
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/CardApp.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public class CardApp {
4 | public void use() {
5 |
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/제어의_역전/JavabomUserRepository.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.제어의_역전;
2 |
3 | public class JavabomUserRepository implements UserRepository {
4 | }
5 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/IoC_용어정리/UserRepository.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.IoC_용어정리;
2 |
3 | public interface UserRepository {
4 | void save(User user);
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/user/connectionmaker/ConnectionMaker.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.user.connectionmaker;
2 |
3 | public interface ConnectionMaker {
4 | void makeConnection();
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/abstract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/main/java/Chap7_LambdaAndStream/item42_44/image/abstract.png
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter6/term/aop용어/데코레이터/UserService.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter6.term.aop용어.데코레이터;
2 |
3 | public interface UserService {
4 | void addUser(String user);
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/java/Chap12_Serialization/item86/readNoData/serializeSub.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easthobb/ReadingRecord/master/이펙티브 자바/effectiveJava/src/test/java/Chap12_Serialization/item86/readNoData/serializeSub.txt
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter6/term/aop용어/프록시/Message.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter6.term.aop용어.프록시;
2 |
3 | public interface Message {
4 | String getText();
5 | String getPlainText();
6 | }
7 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/test/java/com/javabom/toby/chapter1/term/스코프/scope.http:
--------------------------------------------------------------------------------
1 | GET http://localhost:8080/request-scope
2 |
3 | ###
4 |
5 | GET http://localhost:8080/session-scope
6 |
7 | ###
8 |
9 | GET http://localhost:8080/session-expire
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item16/Product.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item16;
2 |
3 | class Product {
4 |
5 | public String productName;
6 | public int cost;
7 |
8 | }
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item24/anonymous/creature/Creature.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item24.anonymous.creature;
2 |
3 | public class Creature extends AbstractCreature implements CreatureInterface {
4 | }
5 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item24/anonymous/creature/CreatureInterface.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item24.anonymous.creature;
2 |
3 | interface CreatureInterface {
4 | boolean interfaceExist = true;
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap6_EnumTypeAndAnnotation/item34/EnumRuntimeTest.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item34;
2 |
3 | public class EnumRuntimeTest {
4 |
5 | public static void main(String[] args) {
6 |
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap6_EnumTypeAndAnnotation/item35/Ensemble.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item35;
2 |
3 | public enum Ensemble {
4 | SOLO, DUET, TRIO, QUARTET, QUINTET,
5 | SEXTET, SEPTET, OCTET, NONET, DECTET;
6 | }
7 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/전략_패턴/ConnectionManager.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.전략_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public interface ConnectionManager {
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/추상_팩토리_패턴/CardFactory.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.추상_팩토리_패턴;
2 |
3 | public interface CardFactory {
4 | Card createCard();
5 |
6 | CardApp createCardApp();
7 | }
8 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item24/anonymous/creature/AbstractCreature.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item24.anonymous.creature;
2 |
3 | abstract class AbstractCreature {
4 | public boolean abstractExist = true;
5 | }
6 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/vending/Vending.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.vending;
2 |
3 | public interface Vending {
4 | void start();
5 | void stop();
6 | void process();
7 | void chooseProduct();
8 | }
9 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/effective-java-question.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Effective Java Question
3 | about: 이펙티브 자바 질문 Issue Template
4 | title: "[아이템 00] 간단한 제목"
5 | labels: 'Effective Java 3'
6 | assignees: ''
7 |
8 | ---
9 |
10 | > p.[페이지] 책 내용
11 |
12 | 질문 :
13 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter3/pattern/템플릿_콜백_패턴/LineCallback.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter3.pattern.템플릿_콜백_패턴;
2 |
3 | public interface LineCallback {
4 | Integer doSomethingWithLine(String line, Integer value);
5 | }
6 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/IoC_용어정리/BasicPencil.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.IoC_용어정리;
2 |
3 | public class BasicPencil implements Pencil {
4 | @Override
5 | public void write() {
6 |
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/spring-of-toby-question.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Spring of Toby Question
3 | about: 토비의 스프링 질문 Issue Template
4 | title: "[0.0 ~ 0.0] 간단한 제목"
5 | labels: 'Spring of Toby 3.1'
6 | assignees: ''
7 |
8 | ---
9 |
10 | > p.[페이지] 책 내용
11 |
12 | 질문 :
13 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/전략_패턴/DConnectionManager.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.전략_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public class DConnectionManager implements ConnectionManager{
7 | }
8 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/전략_패턴/NConnectionManager.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.전략_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public class NConnectionManager implements ConnectionManager {
7 | }
8 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap10_Exceptions/item71/Point.java:
--------------------------------------------------------------------------------
1 | package Chap10_Exceptions.item71;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Getter;
5 |
6 | @Getter
7 | @AllArgsConstructor
8 | public class Point {
9 | private int x;
10 | }
11 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item24/anonymous/Animal.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item24.anonymous;
2 |
3 | import Chap4_ClassAndInterface.item24.anonymous.creature.Creature;
4 |
5 | public abstract class Animal extends Creature {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/java/Chap4_ClassAndInterface/item19/SubTest.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item19;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | class SubTest {
6 | @Test
7 | void name() {
8 | Sub sub = new Sub();
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/kubernetes-introduction.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Kubernetes Introduction Question
3 | about: 쿠버네티스 입문 질문 Issue Template
4 | title: "[0.0 ~ 0.0] 간단한 제목"
5 | labels: 'Kubernetes Introduction'
6 | assignees: ''
7 |
8 | ---
9 |
10 | > p.[페이지] 책 내용
11 |
12 | 질문 :
13 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item7/Connection.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item7;
2 |
3 | import Chap2_GenerateObjectAndDestroy.item7.vo.DBConnection;
4 |
5 | public interface Connection {
6 | DBConnection getDBConnection();
7 | }
8 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/bit/Plant.java:
--------------------------------------------------------------------------------
1 | package bit;
2 |
3 | public class Plant {
4 | final LifeCycle lifeCycle;
5 |
6 | public Plant(LifeCycle lifeCycle) {
7 | this.lifeCycle = lifeCycle;
8 | }
9 |
10 | enum LifeCycle {ANNUAL, PERENNIAL}
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item18/callbackExample/callbackJava/JavaBom.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item18.callbackExample.callbackJava;
2 |
3 | /**
4 | * Created by jyami on 2020/03/07
5 | */
6 | class JavaBom{
7 | String data = "JAVA BOM";
8 | }
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/vending/VendingManufacturer.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.vending;
2 |
3 | public class VendingManufacturer {
4 |
5 | public void printManufacturerName() {
6 | System.out.println("Made By JavaBom");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/spring-toby/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Nov 01 13:53:23 KST 2020
2 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip
3 | distributionBase=GRADLE_USER_HOME
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item86/proxy/Super.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item86.proxy;
2 |
3 | public class Super {
4 | private int superValue;
5 |
6 | public Super(final int superValue) {
7 | this.superValue = superValue;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item7/vo/DBConnection.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item7.vo;
2 |
3 | import lombok.RequiredArgsConstructor;
4 |
5 | @RequiredArgsConstructor
6 | public class DBConnection {
7 | private String connectionName;
8 | }
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item7/DatabaseManager.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item7;
2 |
3 | import Chap2_GenerateObjectAndDestroy.item7.vo.ResultSet;
4 |
5 | public interface DatabaseManager {
6 | ResultSet execute(final String query);
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/the-essence-of-object-orientation.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: The Essence of Object-Orientation Question
3 | about: 객체지향의 사실과 오해 질문 Issue Template
4 | title: "[목차] 간단한 제목"
5 | labels: 'The Essence of Object-Orientation'
6 | assignees: ''
7 |
8 | ---
9 |
10 | > p.[페이지] 책 내용
11 |
12 | 질문 :
13 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter5/term/브릿지_패턴/draw/BrushDraw.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter5.term.브릿지_패턴.draw;
2 |
3 | public class BrushDraw implements Draw {
4 | @Override
5 | public void draw() {
6 | System.out.println("draw by draw");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jan 20 19:51:56 KST 2020
2 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
3 | distributionBase=GRADLE_USER_HOME
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item25/duplicate/dessert/Dessert.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item25.duplicate.dessert;
2 |
3 | class Dessert {
4 | static final String NAME = "pie";
5 | }
6 |
7 | class Utensil {
8 | static final String NAME = "pot";
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item25/duplicate/utensil/Utensil.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item25.duplicate.utensil;
2 |
3 | class Utensil {
4 | static final String NAME = "pan";
5 | }
6 |
7 | class Dessert {
8 | static final String NAME = "cake";
9 | }
10 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter5/term/브릿지_패턴/draw/PencilDraw.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter5.term.브릿지_패턴.draw;
2 |
3 | public class PencilDraw implements Draw {
4 | @Override
5 | public void draw() {
6 | System.out.println("draw by pencil");
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap10_Exceptions/item71/Engine.java:
--------------------------------------------------------------------------------
1 | package Chap10_Exceptions.item71;
2 |
3 | import lombok.AllArgsConstructor;
4 |
5 | @AllArgsConstructor
6 | public class Engine {
7 | private int power;
8 |
9 | public int power() {
10 | return 1;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item18/self/SomethingWithCallback.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item18.self;
2 |
3 | /**
4 | * Created by jyami on 2020/02/22
5 | */
6 | public interface SomethingWithCallback {
7 | void doSomething();
8 |
9 | void call();
10 | }
11 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap11_Concurrency/item79/SetObserver.java:
--------------------------------------------------------------------------------
1 | package Chap11_Concurrency.item79;
2 |
3 | // 집합 관찰자 콜백 인터페이스 (421쪽)
4 | @FunctionalInterface
5 | public interface SetObserver {
6 | // ObservableSet에 원소가 더해지면 호출된다.
7 | void added(ObservableSet set, E element);
8 | }
9 |
10 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/the-definitive-guide-to-spring-batch.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: The Definitive Guide to Spring Batch Question
3 | about: 스프링 배치 완벽 가이드 2/e Issue Template
4 | title: "[목차] 간단한 제목"
5 | labels: ' The Definitive Guide to Spring Batch'
6 | assignees: ''
7 |
8 | ---
9 |
10 | > p.[페이지] 책 내용
11 |
12 | 질문 :
13 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter1/term/di_장점_관심사의분리/KakaoPaySystem.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.di_장점_관심사의분리;
2 |
3 | public class KakaoPaySystem implements PaySystem {
4 |
5 | @Override
6 | public void pay() {
7 | // kakao 결제 모듈가지고 pay 한다
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap3_CommonMethodOfObject/item10/lock/Account.java:
--------------------------------------------------------------------------------
1 | package Chap3_CommonMethodOfObject.item10.lock;
2 |
3 | public interface Account {
4 |
5 | void deposit(long money);
6 | void withdraw(long withdrawalAmount) throws InterruptedException;
7 | long getAmount();
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item32/DontSave.java:
--------------------------------------------------------------------------------
1 | package Chap5_Generic.item32;
2 |
3 | /**
4 | * Created by jyami on 2020/04/05
5 | */
6 | public class DontSave {
7 | public static void hello(Object... objects){
8 | objects[0] = 1;
9 | objects[1] = "String";
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap8_Method/item49/Assertion.java:
--------------------------------------------------------------------------------
1 | package Chap8_Method.item49;
2 |
3 | /**
4 | * Created by jyami on 2020/05/29
5 | */
6 | public class Assertion {
7 | public static void main(String[] args) {
8 | assert false;
9 | System.out.println("hello!");
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item25/staticmember/Utensil.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item25.staticmember;
2 |
3 | class Utensil {
4 | static final String NAME = "pan";
5 |
6 | private static class Dessert {
7 | static final String NAME = "cake";
8 | }
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/java/Chap5_Generic/item32/DontSaveTest.java:
--------------------------------------------------------------------------------
1 | package Chap5_Generic.item32;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | /**
6 | * Created by jyami on 2020/04/05
7 | */
8 | class DontSaveTest {
9 |
10 | @Test
11 | void hello() {
12 | DontSave.hello(1, 2);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/java/Chap6_EnumTypeAndAnnotation/item37/PhaseTest.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item37;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | class PhaseTest {
6 |
7 | @Test
8 | void name() {
9 | System.out.println(Phase.Transition.getTransitionMap());
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item85/Unknown.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item85;
2 |
3 | import java.io.Serializable;
4 |
5 | public class Unknown implements Serializable {
6 | public int value;
7 |
8 | public Unknown(final int value) {
9 | this.value = value;
10 | }
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/이펙티브 자바/README.md:
--------------------------------------------------------------------------------
1 | # 이펙티브 자바
2 |
3 |
4 |
5 | **TODO** (~ 19.01.19)
6 |
7 | - [민형] JVM의 메모리 구조 조사해서 정리해오기
8 |
9 | - [재연] 이슈에있는 아이템1~아이템9 까지의 질문의 답 준비해오기
10 |
11 | - [모두] 아이템10 까지 읽고 질문 이슈에 올리기
12 |
13 | **이슈 올리는 방법**
14 |
15 | 
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item85/accept/Accept.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item85.accept;
2 |
3 | import java.io.Serializable;
4 |
5 | public class Accept implements Serializable {
6 | public int value;
7 |
8 | public Accept(final int value) {
9 | this.value = value;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item85/reject/Reject.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item85.reject;
2 |
3 | import java.io.Serializable;
4 |
5 | public class Reject implements Serializable {
6 | public int value;
7 |
8 | public Reject(final int value) {
9 | this.value = value;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap10_Exceptions/item74/HighLevelException.java:
--------------------------------------------------------------------------------
1 | package Chap10_Exceptions.item74;
2 |
3 | public class HighLevelException extends Exception {
4 | public HighLevelException(Throwable cause) {
5 | super(cause);
6 | }
7 |
8 | public HighLevelException(String message) {
9 | super(message);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter6/term/AnotherAopUserService.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter6.term;
2 |
3 | import org.springframework.stereotype.Service;
4 |
5 | @Service
6 | public class AnotherAopUserService implements AopTestInterface {
7 | @Override
8 | public void test() {
9 |
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/제어의_역전/UserService.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.term.제어의_역전;
2 |
3 | public class UserService {
4 | private final UserRepository userRepository;
5 |
6 | public UserService(UserRepository userRepository) {
7 | this.userRepository = userRepository;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item86/Sample.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item86;
2 |
3 | import java.rmi.Remote;
4 | import java.rmi.RemoteException;
5 |
6 | public interface Sample extends Remote {
7 | int Add(int num1, int num2) throws RemoteException;
8 |
9 | String Echo(String msg) throws RemoteException;
10 | }
11 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item86/readNoData/Sub.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item86.readNoData;
2 |
3 | import java.io.Serializable;
4 |
5 | public class Sub extends Super implements Serializable {
6 | String version;
7 |
8 | public Sub(final String version) {
9 | this.version = version;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item7/vo/ResultSet.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item7.vo;
2 |
3 | public class ResultSet {
4 | public static ResultSet createResultSet(DBConnection dbConnection){
5 | System.out.println("DBConnection 에 따른 작업 후 ResultSet 반환");
6 | return new ResultSet();
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/test/java/Chap9_GeneralProgrammingPrinciple/item64/ValueObjectTest.java:
--------------------------------------------------------------------------------
1 | package Chap9_GeneralProgrammingPrinciple.item64;
2 |
3 | import org.junit.jupiter.api.Test;
4 |
5 | class ValueObjectTest {
6 | @Test
7 | void name() {
8 | ValueObject valueObject = new ValueObject();
9 | valueObject.number();
10 | }
11 | }
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap6_EnumTypeAndAnnotation/item38/TypeSafeEnumerationExample.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item38;
2 |
3 | public class TypeSafeEnumerationExample {
4 | public static void main(String[] args) {
5 | Apple jam = Apple.JAM;
6 | Apple pie = Apple.PIE;
7 | Apple stew = Apple.STEW;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/팩토리_메소드_패턴/DeluxePizza.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.팩토리_메소드_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public class DeluxePizza extends Pizza{
7 |
8 | @Override
9 | protected Pizza getPizza() {
10 | return new DeluxePizza();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter5/term/미디에이터패턴/mediator/AirMediator.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter5.term.미디에이터패턴.mediator;
2 |
3 | import com.javabom.toby.chapter5.term.미디에이터패턴.airplane.AirPlane;
4 |
5 | public interface AirMediator {
6 | void addAirPlane(AirPlane airPlane);
7 |
8 | boolean alert(AirPlane airPlane);
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap12_Serialization/item88/Period.java:
--------------------------------------------------------------------------------
1 | package Chap12_Serialization.item88;
2 |
3 | import java.util.Date;
4 |
5 | public class Period {
6 | private Date start;
7 | private Date end;
8 |
9 | public Period(final Date start, final Date end) {
10 | this.start = start;
11 | this.end = end;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item32/Machine.java:
--------------------------------------------------------------------------------
1 | package Chap5_Generic.item32;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | /**
7 | * Created by jyami on 2020/04/05
8 | */
9 | public class Machine {
10 | private List versions = new ArrayList<>();
11 |
12 | public final void safe(T... toAdd) {
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/팩토리_메소드_패턴/SeafoodPizza.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.팩토리_메소드_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public class SeafoodPizza extends Pizza {
7 |
8 | @Override
9 | public Pizza getPizza() {
10 | return new SeafoodPizza();
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/user/dao/StatementStrategy.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.user.dao;
2 |
3 | import java.sql.Connection;
4 | import java.sql.PreparedStatement;
5 | import java.sql.SQLException;
6 |
7 | public interface StatementStrategy {
8 | PreparedStatement makePreparedStatement(Connection connection) throws SQLException;
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap9_GeneralProgrammingPrinciple/item64/vo/Player.java:
--------------------------------------------------------------------------------
1 | package Chap9_GeneralProgrammingPrinciple.item64.vo;
2 |
3 | public class Player {
4 | private final Name name;
5 |
6 | public Player(Name name) {
7 | this.name = name;
8 | }
9 |
10 | public String getName() {
11 | return name.getName();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/팩토리_메소드_패턴/HamAndMushroomPizza.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.팩토리_메소드_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public class HamAndMushroomPizza extends Pizza {
7 |
8 | @Override
9 | protected Pizza getPizza() {
10 | return new SeafoodPizza();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter3/jdbc_템플릿_콜백_패턴/StatementStrategy.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter3.jdbc_템플릿_콜백_패턴;
2 |
3 | import java.sql.Connection;
4 | import java.sql.PreparedStatement;
5 | import java.sql.SQLException;
6 |
7 | public interface StatementStrategy {
8 | PreparedStatement makePreparedStatement(Connection c) throws SQLException;
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item1/constructor/Foo.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item1.constructor;
2 |
3 | public class Foo {
4 |
5 | private final FooRepository fooRepository;
6 |
7 | // DI 패턴 사용 시 생성자 구현이 필요하다.
8 | public Foo(FooRepository fooRepository) {
9 | this.fooRepository = fooRepository;
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/item18/Service.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.item18;
2 |
3 | import java.util.HashSet;
4 |
5 | /**
6 | * Created by jyami on 2020/02/22
7 | */
8 | public class Service {
9 | public static void main(String[] args) {
10 | InstrumentedSet set = new InstrumentedSet<>(new HashSet<>());
11 |
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/spring-toby/java-project/build.gradle:
--------------------------------------------------------------------------------
1 | dependencies {
2 | implementation 'org.junit.jupiter:junit-jupiter:5.4.2'
3 | testCompile 'org.junit.jupiter:junit-jupiter-api:5.3.1'
4 | testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
5 | testCompile group: 'com.h2database', name: 'h2', version: '1.3.148'
6 | testCompile group: 'org.assertj', name: 'assertj-core', version: '3.15.0'
7 |
8 | }
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter3/term/전략_패턴/StatementStrategy.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter3.term.전략_패턴;
2 |
3 | import java.sql.Connection;
4 | import java.sql.PreparedStatement;
5 | import java.sql.SQLException;
6 |
7 | public interface StatementStrategy {
8 | PreparedStatement makePreparedStatement(Connection connection) throws SQLException;
9 | }
10 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter3/term/중첩_클래스/StatementStrategy.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter3.term.중첩_클래스;
2 |
3 | import java.sql.Connection;
4 | import java.sql.PreparedStatement;
5 | import java.sql.SQLException;
6 |
7 | public interface StatementStrategy {
8 | PreparedStatement makePreparedStatement(Connection connection) throws SQLException;
9 | }
10 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap5_Generic/item32/Machine2.java:
--------------------------------------------------------------------------------
1 | package Chap5_Generic.item32;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * Created by jyami on 2020/04/05
7 | */
8 | public class Machine2 {
9 | private List versions;
10 |
11 | @SuppressWarnings("unchecked")
12 | public void addVersion(String version) {
13 | versions.add(version);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/pattern/템플릿_메소드_패턴/Super.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter1.pattern.템플릿_메소드_패턴;
2 |
3 | /**
4 | * Created by jyami on 2020/11/01
5 | */
6 | public abstract class Super {
7 |
8 | protected void hookMethod(){
9 | System.out.println("선택적으로 오버라이드 가능한 훅 메서드");
10 | }
11 |
12 | public abstract void abstractMethod();
13 | }
14 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/resources/sqlmap.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | insert
6 | select
7 | delete
8 |
9 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap2_GenerateObjectAndDestroy/item1/constructor/SingletonFoo.java:
--------------------------------------------------------------------------------
1 | package Chap2_GenerateObjectAndDestroy.item1.constructor;
2 |
3 | public class SingletonFoo {
4 | private static SingletonFoo INSTANCE = new SingletonFoo();
5 |
6 | // 정적팩터리메서드 - Singleton 클래스에서 반환 메서드 담당
7 | public static SingletonFoo getInstance(){
8 | return INSTANCE;
9 | }
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/spring-toby/spring-project/src/main/java/com/javabom/toby/chapter5/term/브릿지_패턴/shape/Shape.java:
--------------------------------------------------------------------------------
1 | package com.javabom.toby.chapter5.term.브릿지_패턴.shape;
2 |
3 | import com.javabom.toby.chapter5.term.브릿지_패턴.draw.Draw;
4 |
5 | public abstract class Shape {
6 | protected Draw draw;
7 |
8 | public Shape(final Draw draw) {
9 | this.draw = draw;
10 | }
11 |
12 | abstract public void drawShape();
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap4_ClassAndInterface/vending/BaverageVending.java:
--------------------------------------------------------------------------------
1 | package Chap4_ClassAndInterface.vending;
2 |
3 | public class BaverageVending extends AbstractVending implements Vending {
4 |
5 | @Override
6 | public void chooseProduct() {
7 | System.out.println("choose menu");
8 | System.out.println("coke");
9 | System.out.println("energy drink");
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/이펙티브 자바/effectiveJava/src/main/java/Chap6_EnumTypeAndAnnotation/item36/Text.java:
--------------------------------------------------------------------------------
1 | package Chap6_EnumTypeAndAnnotation.item36;
2 |
3 | import java.util.Set;
4 |
5 | public class Text {
6 |
7 | public void applyStyles(Set