개발에서 아키텍쳐가 중요한 이유
개발에서 아키텍쳐가 중요한 이유
개발에서 아키텍쳐가 중요한 이유
Git Branch 전략에 대하여
Oracle 비율 함수 RATIO_TO_REPORT()에 대해
SQL 복수행 함수에 대해
SQL 단일행 함수에 대해
오라클 컬럼 길이 조절에 대해
SQL과 DBMS에 대해
쿠버네티스에 대하여 쿠버네티스? minikube vs kubernetes ReplicationController vs ReplicaSet vs Deployment kubectl apply(declarative) vs kubectl create(i...
Docker에 대하여 Container기술 Docker 설치와 명령어 정리
댓글에 댓글을 달 수 있는 방법 기획 고민 코드
IT개발 입문할 때 마음가짐과 방법 IT 개발을 효율적으로 배우는 마음가짐 IT 개발을 효율적으로 배우는 방법 요약
QueryDSL에 대해 정의 설정 사용 예시
Thymeleaf에 대해 정의 사용법 문법 결론
Spring에서 PageRequest와 Pageable에 대해 정의 PageRequest Pageable 결론
Spring에서 간단한 예외와 복잡한 예외의 비교 문제 throw new exception() new exception() 분석 결론
Spring에서 커스텀 예외를 다루는 방법 문제 Spring의 예외 처리 흐름 Spring이 제공하는 다양한 예외처리
Gradle에 대하여 정의 명령어 build.gradle
SVN과 GitHub의 차이 정의 SVN 장단점 GitHub 장단점
PHP와 Java의 장단점 정의 PHP 장단점 Java 장단점
패키지 구조에 대하여 패키지 구조란 계층형 패키지 구조 도메인형 패키지 구조
GitHub labels 좀 쉽게 설정하기 라벨이란 준비물 진행과정 결과화면
자바스크립트에서의 객체 접근법 두 가지, 점표기법 vs 괄호표기법에 대해 객체 접근법이란 점 표기법 괄호 표기법
다대다 관계의 문제점과 해결에 대해 다대다 관계의 예 문제점 해결
MySQL에서 잠금 쿼리로 동시 접근을 처리하는 방법에 대해 공유 락 배타 락 MySQL에서 공유 락과 배타 락 주의점
ORACLE과 MySQL의 차이 DB란 ORACLE MySQL 차이
Code Review를 잘하는 방법 코드리뷰란 코드리뷰 핵심 작성자 관점 리뷰어 관점
curl에 대하여 curl이란 설치 및 주요 옵션 HTTP/HTTPS 다운로드(GET Method) POST/File 업로드(POST, PUT) PATCH, DELETE 메서드 HTTP 인증 Cookie HTTP He...
어떤 JDK를 써야 할까 JDK란 JDK 종류 SDKMan을 통한 JDK 목록/설치/관리 release 주기
gRPC에 대해 RPC와 스텁(stub) gRPC gRPC와 RESTAPI 비교 장단점
Heap이라는 자료구조에 대해 heap 정의 힙을 배열로 구현 삽입과 삭제로 깨진 힙을 재구조화하기(heapify) 참고 출처
JPA에서 Pageable에 대해 페이징이란 Spring Data JPA에서의 페이징과 정렬 쿼리 메서드에서 페이징 사용하기 반환 타입에 따른 페이징 결과 Spring Web MVC에서 더 편하게 페이징하기
GitHub credentials 업데이트(mac) keychain access로 자격 증명 업데이트 명령줄을 통한 자격 증명 삭제 Git에서 GitHub 자격 증명 캐싱
CORS에 대하여 정의 필요성 request와 response Access-Control-Allow-Credentials Access-Control-Allow-Origin
자바 테스트 시, public이 아닌 필드를 Reflection으로 넣어주는 방법 Reflection 정의 예시 해결
GitHub README 파일에 이미지나 동영상 첨부하는 방법 링크 생성 마크다운 양식 mp4파일을 gif파일로 변환
JPA에서 Flush에 대하여 정의 동작 과정 사용 방법 옵션 설정
IntelliJ 단축키(Mac) 자주쓰는 단축키 메모 단축키 Visual Studio Code 기타 단축키
자바 직렬화와 역직렬화, JSON, GSON 직렬화와 역직렬화 JSON GSON
자바 throws와 throw Throws Throw
자바 String Constant Pool에 대해 String 객체를 생성하는 방법 String Constant Pool String interning
자바 특수문자, 괄호, 백슬래시, 따옴표 출력하기 Escape Sequence 정의 종류 사용 예시
Supply Chain Attack에 대해 Left-Pad 이슈 정의 예시 대처
자바 String, StringBuffer, StringBuilder 비교 String vs StringBuffer/StringBuilder StringBuffer vs StringBuilder
자바 Calendar 클래스 정의 사용
Log4j2 vs Slf4j Log4j2 SLF4j(Simple Logging Facade For Java) Log4j2를 사용해야 하는 이유
Spring Boot 리팩토링하기 Raw 타입은 사용하지 말자 Restful API는 자원과 메소드로 표현하자 데이터를 주고 받을 때에는 DTO를 이용하자 final과 함께 생성자 주입을 사용하라 Controller는 최대한 가볍게 만들어...
Spring 단위 테스트에 대하여 올바른 단위 테스트 필요한 프레임워크와 테스트 패턴 테스트용 모의 객체 프레임워크
TDD, 왜 그리고 어떻게 정의 이유 방법
Spring Security: (3)Authorization 정의 사전 호출 처리 계층적 역할
ThreadLocal에 대해 ThreadLocal이란? 사용법 주의사항 활용
Spring Boot 3.0 버전 변경 사항 정리 요구사항 업그레이드 마이그레이션 핵심 변경 사항 인프라 측면에서 변경 사항
Spring Security: (2)Authentication 정의 구조
Spring Security: (1)Architecture Spring Security란 사용 구조
Transaction에 대하여 트랜잭션이란 보장해야 하는 ACID 트랜잭션 격리 수준 Spring에서 트랜잭션 Spring에서 트랜잭션 사용
DI에 대하여 DI란 DI 필요성 DI 방법 생성자 주입
필터와 인터셉터의 개념과 역사 필터 인터셉터 필터와 인터셉터의 차이 DelegatingFilterProxy 등장 SpringBoot 등장
URL, URI, URN 개념 URL URI URN
Dirty Checking에 대하여 Dirty Checking이란 @DynamicUpdate
Persistent Context에 대하여 Persistent Context란 엔티티의 생명주기(Entity LifeCycle) 사용 이유
JPA에 대하여 ORM이란 JPA란 동작 과정 사용 이유 지연 로딩 vs 즉시 로딩
Vim에 대하여 Vim이란 사용법 단축키 유용한 사이트
Thymleaf와 JSP Template Engine JSP Thymleaf
Request Parameter, Data Binding, Data Validation Request Parameter Data Binding Data Validation
Persistent, JDBC, JPA, Hibernate, Mybatis Persistent JDBC JPA Hibernate Mybatis
DAO, DTO, VO DAO(Data Access Object) DTO(Data Transfer Object) VO(Value Object)
(MacOS) MySQL, MySQL Workbench 설치, 실행 및 기본 설정 한글설정(UTF-8) 삭제 접속 오류 접속 권한 설정
Servlet이란 Web Service의 기본적인 동작 과정 HTML Form Servlet
Web Server와 WAS Static Pages와 Dynamic Pages Web Server WAS 구분하는 이유
Spring Framework 라이브러리 vs 프레임워크 스프링 프레임워크란
REST와 REST API, 그리고 RESTful REST REST API RESTful
TCP 연결 TCP란 TCP 3-way handshaking TCP 4-way handshaking
Process와 Thread 프로그램 프로세스 쓰레드 자바 쓰레드 멀티 쓰레드 멀티 프로세스와 멀티 쓰레드 차이 멀티 프로세스 대신 멀티 쓰레드를 사용하는 이유
Comparable과 Comparator 인터페이스 Comparable을 이용한 정렬 Comparator을 이용한 정렬 Overflow vs Underflow
오버로딩과 오버라이딩 오버로딩(Overloading) 오버라이딩(Overriding)
OOP의 원칙 S: 단일 책임 원칙(SRP) O: 개방-폐쇄 원칙(OCP) L: 리스코프 치환 원칙(LSP) I: 인터페이스 분리 원칙(ISP) D: 의존 역전 원칙(DIP)
OOP(Object Oriented Programming)의 특징 OOP의 정의(Definition of OOP) 캡슐화(Encapsulation) 상속(Inheritance) 다형성(Polymorphism)
TDD(Test Driven Development)란 무엇일까 TDD의 정의(Definition of Test Driven Development) TDD의 효과(The Effect of Test Driven Development) TDD의 장단점(Adv...
데일리 스크럼(Daily Scrum)이 무엇일까 데일리 스크럼 정의(Daily Scrum Definition) 데일리 스크럼 장점과 목적(Advantages and Objectives of Daily Scrum)
애자일 방법론(Agile Methodology)이 무엇일까 애자일 등장 배경(Appearance Background) 애자일 정의(Agile Definition) 애자일 핵심 가치(Agile Core Value) SW 개발의 불확실성과 사업적 가...
실수로 Git Add, Commit, Push한 내용 취소 git add 취소 git commit 취소 git push 취소 untracked 파일 삭제
GitHub로 협업할 때 알아둬야 할 것 저장소에 대한 개념 GitHub로 협업하는 방법과 이유
협업할 때 사용하는 Git Branch의 종류 Gitflow Workflow에서 사용하는 Git Branch 종류를 이해한다. Gitflow Workflow에서 사용하는 Git Branch 사용법을 이해한다.
GitHub에 잘못 올린 파일 삭제하기 GitHub pages를 만들 때 올릴 필요가 없는 파일을 remote origin에 push한 경우 remote origin에 잘못 올라간 파일을 삭제하고 .gitignore에 등록해 무시하고 다시 push한다
Bundler 개념 번들러가 어떻게 만들어졌나 번들러의 역할 번들러의 장점
블로그(GitHub Pages) 활용 방법 GitHub pages를 꾸미고 각 요소를 설정하는 방법들 정리 포스팅할 때 활용할 수 있는 기능 정리