├── 모던__리눅스_관리 ├── 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 | ![image](https://user-images.githubusercontent.com/34976178/72200839-7ec58e80-3491-11ea-8146-b22b5868d648.png) -------------------------------------------------------------------------------- /이펙티브 자바/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