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
START: 1/03 END:
- Spring Security init, configure(WebSecurity, HttpSecurity, FilterChainProxy, SecurityFilterChain)study note