Skip to content

This repository serves as a personal study space for learning and exploring Java and Spring Framework.

Notifications You must be signed in to change notification settings

jkky-98/java-study-road

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java 개인 공부 공간입니다.

START : 2024/4/19 End : 2024/4/22

  • JAVA 환경 구성 - JAVA 17, InelliJ
  • 주석 처리법
  • 자바 기본 작동 개념
  • 변수( 변수 선언, 초기화, 변수 타입, 실전에서 자주 쓰이는 변수, 카멜규칙(클래스, 변수, 상수), 오버플로우)
  • 연산자 (산술, 문자열 연산, 연산자 우선순위, 증감(전위증감, 후위증감), 논리 연산, 대입연산)
  • 조건문(if, if else, else, 삼항연산자, switch)
  • 반복문(while, do-while, for, break, continue 중첩반복)
  • 스코프(변수 스코프, 스코프 존재이유)
  • 형변환(묵시적 형변환, 명시적 형변환)
  • 배열(배열 생성 과정, 배열의 참조 개념, 배열 리펙토링, 2차원 배열, 향상된 for문)
  • 메소드(메소드 생성 방식, void 및 반환 타입, 메서드 형변환, 오버로딩, 메서드 시그니처)
  • Link Review

START : 2024/04/23 End : 2024/05/06 Certificates

  • 클래스와 데이터(클래스 개념-(클래스,객체,인스턴스), 배열안의 클래스)study note
  • 기본형과 참조형(지역변수와 멤버변수의 초기화, nullPointerException, 참조형의 절대적 동작방식)study note
  • 객체지향 프로그래밍(절차지향 프로그래밍, 절차지향에서 객체지향으로, 클래스 내부 메서드)study note
  • 생성자(생성자 생성규칙, 생성자 생성시 제약조건, 기본생성자, 생성자 오버로딩, this() )study note
  • 패키지(import 문법, 패키지 이름 관례)study note
  • 접근제어자(접근 제어자 종류, 필드+메서드 접근제어자 활용, 클래스 레벨 활용, 캡슐화)study note
  • final(final개념, static final, 상수, 자바 상수 특징, 참조형 final)study note
  • 상속(상속의 필요성, extends, 단일 상속, 상속시 메모리 구조, 오버라이딩, super)study note
  • 다형성1(다형적 참조, 다형적 참조시 메모리 구조, 다운 캐스팅, 업 캐스팅, 일시적 다운 캐스팅, 런타임오류 vs 컴파일오류, instanceof, 다형성에서 메서드 오버라이딩)study note
  • 다형성2(다형성 활용, 추상 클래스, 인터페이스, 다중 구현)study note
  • 다형성과 설계(다형적 설계개념, OCP)study note

START : 2024/05/07 End : 2024/05/29 Certificates

  • Object Class(java.lang, Object, Object polymorphism, Object Array, toString(), equals())study note
  • Immutable object(공유 - 기본형과 참조형, 불변객체 설계, 불변객체 값 변경, withXxx())study note
  • String Class(type of string, String Class, equals(), StringBuilder, String optimization, Method Channing)study note
  • Wrapper, Class(primitive 한계, wrapper class, auto-boxing, class class, system class, math, random class)study note
  • Enum (type 안전성, Enum class, Enum refactoring, private 생성자)study note
  • java.time(LocalDateTime, ZonedDateTime, Period/Duration, ChronoField/Unit, Instant)study note
  • Nested, Inner Class(내부 static class, 내부 class)study note
  • Local, Anonymous Class(local class, anonymous class, local capture)study note
  • exception theory( checked exception, unchecked exception, try, catch, throw, throws, exception class hierarchy)study note
  • make use of exception(finally, exception다형성, unchecked exception, most unchecked exceptions are, specific processing part, try-with-resources)study_note

START : 2024/06/01 End : 2024/06/17 Certificates

  • necessity of Generic(Trade-off between type safety and code reusability when not using generics, How to write generics, type inference )study note
  • Generic(type restrictions-(extends,super), generic method, wildcard, type eraser)study note
  • ArrayList(Array vs ArrayList, Big O, ArrayList with Generic)study note
  • LinkedList(Array vs LinkedList, node, LinkedList with Generic)study note
  • Collection List-ArrayList, LinkedList(java.utils.List, Real tests with a lot of data, Dependency injection using the List interface, System.arraycopy(), double-linkedList )study note
  • Hash and Set(List vs Set, hash in set, Hash algorithm using remainder)study note
  • HashSet(char -> int with ASCII, Object.equals() and .hashCode(), why we need to override equals and hashCode)study note
  • Collection Set-HashSet, LinkedHashSet, TreeSet(tap into Java collection Set, binary-tree)study note
  • Collection Map, Deque(Map concept, Map-key equals with Set, Queue, Stack with Deque, Generic is Invariant)study note
  • Collection Iterable, Comparable(Iterable, Iterator, Comparable, Comparator, Xxx.of, Collection utils)study note

START : 2024/06/18 End : 2024/06/21

  • Setting Spring Boot, web develop basic(MVC, Template Engine, static contents, API, Controller, Tomcat)study note
  • Membership management example, TestCase(Junit, Assertions, BeforeEach, AfterEach)study note
  • SpringBean(ComponentScan, @Configuration, DI, Autowired)study note
  • DB Connection(easy jdbc, jdbctemplate, jpa, spring data jpa, AOP)study note

START : 2024/06/22 END : 2024/07/01 Certificates

  • Spring OutLine(EJB to Spring, SOLID, polymorphism)study note
  • Spring create example (Member order management example without spring)study note
  • Spring DI Container (AppConfig, @Configuration, @Bean, DI Container)study note
  • Spring Singlton (How Spring containers preserve singleton pattern, @Configuration, cgblib, Advantages and disadvantages of the singleton pattern )study note
  • ComponentScan (@ComponentScan, ConflictingBeanDefinitionException, filter, @Qualify, @Primary)study note
  • Auto DI, Auto Bean Register in Container(4 type of DI, Lombok, @Qualify, @Primary, select auto vs manual)study note
  • Bean Lifecycle Callbacks(Separate creation and initialization, InitializingBean, DisposableBean, @Bean Parameter, @PostConstruct, @PreDestroy )study note
  • Bean Scope(PrototypeScope, LazyLoading, WebScope)study note

START : 2024/07/02 End : 2024/07/09 Certificates

  • Internet Network (IP, TCP, UDP, TCP 3 way handshake, Port, DNS)study note
  • HTTP communication flow, URI(URL, URN, URI, web browser - web server communication flow)study note
  • HTTP Overview (Http history, client and server, stateless, connectedless, http messages)study note
  • HTTP method (GET, POST, PUT, DELETE, PATCH...)study note
  • make use of http method(HTML form, multipart/form-data, API)study note
  • HTTP status code(200~500, PRG, 302 vs 301)study note
  • HTTP Header(Representation, Negotiation, Quality Values, Cookies, XSS attack)study note
  • HTTP Cache(cache-control, Last-Modified, ETag, Proxy Cache, Cache Invalidation)study note

START : 2024/07/10 End : 2024/07/23 Certificates

  • Servlet preview, WAS(WebServer & WAS, Servlet, Was Multi-Thread, SSR, CSR)study note
  • Servlet(Servlet Request, Response, @WebServlet)study note
  • Servlet, JSP, MVC Pattern(only Servlet, only JSP, V0 MVC pattern with servlet, jsp )study note
  • Make custom MVC Architecture(FrontController, model, viewResolver, handler, adapter pattern)study note
  • Spring MVC Start(DispatcherServlet, from Custom MVC to SpringMVC)study note
  • Spring MVC Architecture(Slf4j*, RequestMapping, Get Headers, Get queryparams, Get MessageBody, HttpMessageConverter)study note
  • MVC Web mini project(PRG pattern, thymeleaf, th:)study note

START:7/18 END: 9/13 Certificates

  • Process, Thread(multitasking, multiprocessing, process, thread, mulitthread, schedulingQueue, context switching, cpu bound vs I/O bound task)study note
  • Java.lang Thread, Runnable(daemon thread, Thread, Runnable)study note
  • Thread State, LifeCycle1(thread's basic information, thread state, check exception, join())study note
  • Thread interrupt, yield(interrupt, isInterrupted, interrupted, yield)study note
  • memory visiable(cpu cash memory, volatile, happens-before)study note
  • synchronized (critical section, instance Lock, shared variable)study note
  • concurrent.Lock(LockSupport, WAITING vs BLOCKED, ReentrantLock tryLock)study note
  • Producer-Consumer Problem in MultiThread(Object.wait(), notify(), wait set, thread starvation)study note
  • CAS(AtomicInteger, CompareAndSet, Lock-free, Optimistic synchronization)study note
  • Concurrent Collection(proxy pattern, synchronized's over thread safe, concurrent collection)study note
  • ExecutorService, Future(Executor Framework, ThreadPoolExecutor, Callable, Future, invokeAll)study note
  • Reasonable Executor's Using(shutdown(), close(), newFixedThreadPool, newCachedThreadPool, ExecutorRejectPolicy)study note

START:7/25 END:8/12 Certificates

  • ThymeLeaf (th:text, utext, each,... springboot3 basic object, th:block, th:inline="javascript", th:fragment)study note
  • Spring Thymeleaf Integration and Form (th:object, th:fields, checkbox, radio button, init @ModelAttribute, select box)study note
  • Message internationalization (messages.properties, Accept-Language, MessageSource, Locale)study note
  • Controller Validation (BindingResult, FieldErrors, ObjectErrors, errors.properties, MessageCodesResolver)study note
  • Bean Validation (Annotation Validation, groups, form object seperation, BeanValidation with API)study note
  • Session, Cookie (Login, Sign up, session, cookie, session login, HttpSession)study note
  • Filter, Interceptor(Web AOP, Servlet Filter, Spring Interceptor)study note
  • Exception, ErrorPage(ErrorPage, sendError(), take off Filter, take off Interceptor, dispatcherType, BasicErrorController Rules)study note
  • API exception, ExceptionResolver(HandlerExceptionResolver, ResponseStatusExceptionResolver, DefaultHandlerExceptionResolver, @ExceptionHandler, ControllerAdvice)study note
  • TypeConverter(Converter, ConversionService, Formatter, thymeleaf, field annotation)study note
  • File upload(Servlet getParts, multipart/form-data, MultipartFile)study note

START:8/16 END:8/22 Certificates

  • Jdbc, ConnectionPool(Connection, Statement, ResultSet, Driver, DriverManager, HIkariCP, DataSource)study note
  • Transaction(transaction concept, ACID, DB session, auto commit, DB Lock, commit, rollback)study code
  • Transaction Manage, AOP(TransactionManager, Connection in ThreadLocal, @Transactional, TransactionTemplate)study note
  • SqlException, JdbcTemplate(Java Exception, SQLException, SQLExceptionTranslator, DataAccessException, JdbcTemplate)study note

START:8/23 END:9/3 Certificates

  • Spring JdbcTemplate(update, query, queryForObject, NamedParameterJdbcTemplate, BeanPropertyRowMapper, SimpleJdbcInsert, SqlParameterSource)study note
  • Repository Test, @Transactional(db seperation for test, @Transactional for test, H2 embedded mode for test, Independent implementation with rollback)study note
  • MyBatis(@Mapper, xml, ItemMapper)study note
  • JPA(Intro)(JPA, SpringDataJpa, querydsl)study note
  • Spring Transaction Detail(Cglib Proxy, transaction option, proxy internal call problem)study note
  • Tranaction Propagation (REQUIRED, rollbackOnly, isNewTransaction(), physical & logical transaction)study note

START:9/19 END: 9/24Certificates

  • Spring boot starter setting (build, Gradle vs Maven, ddl-auto)study note
  • Entity Design(JoinColumn, mappedBy, @Embedded, FetchType.LAZY)study note
  • Member, Item Service, Repository(practice with JPA)study note
  • Order Service, Repository(practice with JPA)study note

START:9/25 END:10/10Certificates

  • Persistence Context(persistence context, transient, managed, detached, flush)study note
  • Entity Mapping(Column Mapping, ddl.auto, @Id, id strategy)study note
  • Association mapping(@JoinColumn, Bidirectional relationship, mappedBy, Using object orientation in object-table relationships)study note
  • ForeignKey, Inheritance mapping(1:1, N:1, 1:N, N:M, @Inheritance, @MappedSuperClass)study note
  • Jpa Proxy, Lazy Loading, cascade(FetchType.LAZY, Proxy mechanism, CASCADE)study note
  • jpa embedded(object immutability, Do not use value type collections, @Embedded, @Embeddable)study note
  • jpql grammer(Query, projection, paging, Join, subQuery)study note
  • jpql high level grammer(jpql alias, Implicit JOIN, fetch join, distinct, bulk jpql)study note

START:10/10 END: 10/15Certificates

  • API Controller Setting(dto, json list, Avoid modifying entities)study note
  • API : Order(Optimization: fetch join, dto query with no entity)study note
  • API Query optimization advance(Collection fetch, @BatchSize, OSIV)study note

START:10/16

  • Charset, text encoding(ASCII, MS_949, UTF-8, korean charset history)study note
  • Java Stream 1(MemoryStream, System.out, FileStream, BufferedStream)study note
  • Java Stream 2(Writer, Reader, Basic Stream, Sub Stream)study note
  • DataStream, ObjectStream(DataStream, ObjectStream, object serializer)study note
  • Java Socket1(ServerSocket, Socket, MultiThread)study note

START:10/16 END: 10/21Certificates

  • JpaRepository, Query method(@Query, @Modifying, @EntityGraph)study note
  • Spring Data Jpa extension(Auditing, Paging, Domain Class Converter, with custom repository(ex.Querydsl))study note

START:10/22 END:10/25Certificates

  • Querydsl basic grammer(Q-type, chaining method, Tuple result)study note
  • Querydsl advance grammer(Dto projection, @QueryProjection, BooleanBuilder, BooleanExpression, SQL function)study note
  • Spring data jpa + Querydsl(Custom Repository, Paging, Sort)study note

START: 10/28 END: 11/7Certificates

  • WAS, servlet container(Tomcat, JAR, WAR, WebApplicationInitializer)study note
  • Embedded tomcat, Boot(build & release only JAR, FatJAR, how to build in boot jar )study note
  • Library, AutoConfiguration(spring boot starter, @Conditional, AutoConfiguration)study note
  • External option 1(OS Environment variable, Java VM option, Command line option variable, Environment)study note
  • External option 2, Profile(ConfigurationProperties, @Validated, yaml, @Profile)study note
  • Monitoring(Micrometer, Prometheous, Grafana, custom metric)study note

START: 11/08 END: 11/19Certificates

  • Custom Log Tracker, ThreadLocal(Singleton field Concurrency issue, ThreadLocal)study note
  • Design Pattern 1(Template Method Pattern, Strategy Pattern, Template Callback Pattern)study note
  • Design Pattern 2(Proxy Pattern, Decorator Pattern)study note
  • Dynamic Proxy(java Reflection, JDK proxy, Cglib proxy, ProxyFactory, Advisor, Advice, Pointcut)study note
  • Bean Post Processor, Spring AOP(BeanPostProcessor, AutoProxyCreator, @Aspect, @Around, AspectJ)study note
  • Spring AOP, Pointcut Expression grammer(@Pointcut, @Order, @Before, @AfterReturning, @AfterThrowing, @After, execution parameter, execution polymorphism)study note
  • Spring AOP Caution(Proxy internal call, Cglib vs JdkProxy Type Casting difference, cglib problem)study note

[21. ]

START: 1/03 END:

  • Spring Security init, configure(WebSecurity, HttpSecurity, FilterChainProxy, SecurityFilterChain)study note

About

This repository serves as a personal study space for learning and exploring Java and Spring Framework.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages