profile
꾸준히 나아가자 🐢
태그 목록
전체보기 (246)데브코스(51)TIL(43)CS(37)k8s(15)JPA(14)Spring boot(14)spring security(13)네트워크(12)Spring(11)test(11)Java(10)오브젝트(9)BankSystem(9)(9)sql(8)docker(8)디자인 패턴(6)하루 기록(6)db(6)자료구조(5)애자일(5)OS(5)OOP(4)optional(4)알고리즘(4)http(4)modelattribute(4)exception(4)REST(4)redis(3)transactional(3)ObjectMapper(3)운영체제(3)session(3)mysql(3)transaction(3)spring-guide(3)JDBC(3)bean validation(3)Thread(3)spring-data-jpa(3)https(3)RequestBody(2)controlleradvice(2)DTO(2)cors(2)logging(2)git(2)DML(2)build(2)ResponseEntity(2)spring mvc(2)mock(2)디자인패턴(2)PostgreSQL(2)XSS(2)interface(2)Builder(2)stream(2)java 17(2)무중단 배포(2)Lamda(2)unit test(2)Mockito(2)csrf(2)CI/CD(2)integration test(2)redirect(2)특강(2)VO(2)MyBatis(2)jackson(2)cookie(2)SOLID(2)데이터베이스(2)rds(2)entity(2)@RequestParam(2)JVM(2)미션(1)@ExceptionHandler(1)404(1)Trie(1)yaml(1)클라우드(1)bean(1)service(1)개구리책(1)GetMapping(1)commit 메세지(1)abstract class(1)Auto Configuration(1)gradle(1)throw(1)URN(1)class(1)TriFunction(1)records(1)@NotBlank(1)linkedlist(1)jsp(1)@JsonInclude(1)tcp(1)RestController(1)RequestContextHolder(1)연관관계 매핑(1)서블릿(1)SQL injection(1)Generic(1)원인 파악 X(1)Optional.map()(1)OAuth2.0(1)ec2(1)UDP(1)Querydsl(1)JWT(1)forward(1)WS(1)WAS(1)var(1)머지(1)BiFunction(1)ocp(1)LocalDate(1)aop(1)nested(1)github actions(1)메모리관리(1)www & non-www(1)Collection(1)tree(1)select(1)springboot test(1)ResponseCookie(1)리팩토링(1)functional interface(1)메서드(1)@RestControllerAdvice(1)Enum(1)cascade(1)접근 제한자(1)Configmap(1)LSP(1)repository(1)form 태그(1)secret(1)replicaset(1)logger(1)spring-rest-docs(1)array(1)피드백(1)getter(1)spa(1)servlet(1)nosql(1)github(1)객체지향(1)http 헤더(1)Swagger(1)No serializer found for class(1)OneToOne(1)(1)JDBCTemplate(1)Hash Table(1)HttpSession(1)JPQL(1)샤딩(1)Pageable(1)inner class(1)정규화(1)시간 복잡도(1)영속성 컨텍스트(1)jdk(1)@SpringBootTest(1)@Validated(1)Controller(1)EmptyResultDataAccessException(1)일급 컬랙션(1)reflection api(1)thread-safe(1)Checked Exception(1)메모리(1)ci(1)프로세스(1)N+1 문제(1)Parameterized(1)ingress(1)ORDER BY(1)object(1)page(1)web(1)Collection.forEach(1)stub(1)스프링 입문을 위한 자바 객체 지향의 원리와 이해(1)Bank System(1)LocalDateTime(1)environment(1)URI(1)IoC(1)orElse(1)Autowired(1)jenkins(1)@ResponseBody(1)프록시객체(1)DNS(1)mysql index(1)ArrayList(1)동기화(1)@SessionAttribute(1)리플렉션(1)Unchecked Exception(1)stack(1)queue(1)deployment(1)S3(1)Datasource(1)process(1)elasticsearch(1)heap(1)세션(1)SpringSecurity(1)Class Diagram(1)3xx(1)@Valid(1)orElseGet(1)group by(1)mockMvc(1)throws(1)oAuth(1)MapsId(1)RequestMapping(1)iterator(1)validation(1)Index(1)jacoco(1)url(1)DDL(1)@DataJpaTest(1)고급 매핑(1)chmod(1)

오브젝트 - 09 유연한 설계

확장에 열려 있으며 수정에 닫혀 있다.기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계컴파일 의존성을 수정하지 않고도 런타임 의존성을 쉽게 변경할 수 있다.추상화에 의존하라!추상화핵심적인 부분만 남기고 불필요한 부분은 생략생략된 부분을 문맥에 적

2023년 5월 24일
·
0개의 댓글
·

1. 스프링 부트 살펴 보기

스프링 기반으로 실무 환경에서 사용 가능한 수준의 독립실행형 어플리케이션을 고민 없이 빠르게 작성할 수 있도록 도와주는 여러가지 도구의 모음스프링 != 스프링 부트임을 반드시 기억하자!전체적으로 앞에 소개에서 나온 핵심 내용들을 포함하고 있다.빠르고 광범위한 영역의 스

2023년 5월 22일
·
0개의 댓글
·

오브젝트 - 08 의존성 관리하기

작고 응집도 높은 객체 한 가지 일만 잘 하는 객체 기능을 구현은 객체들간의 협력을 통해서 이루어진다. 설계의 핵심은 필요한 의존성은 유지하되 변경을 방해하는 의존성은 제거 01 의존성 이해하기 변경과 의존성 의존성 실행 시점: 실행 시에 의존 대상 객체가 반

2023년 5월 22일
·
0개의 댓글
·

오브젝트 - 07 객체 분해

추상화 : 불피룡한 정보를 제거하고 현재의 문제 해결에 필요한 핵심만 남기는 작업분해 : 큰 문제를 해결 가능한 작은 문제로 나누는 작업프로시저 추상화소프트웨어가 무엇을 해야 하는지를 추상화한다.기능 분해(알고리즘 분해)데이터 추상화소프트웨어가 무엇을 알아야 하는지를

2023년 5월 20일
·
0개의 댓글
·

오브젝트 - 06 메시지와 인터페이스

좋은 객체지향 코드를 얻기 위해서 → 객체를 지향객체가 수행하는 책임에 초점을 맞춰야 한다.애플리케이션은 클래스로 구성되지만 메시지를 통해 정의된다.따라서 가장 중요한 것은 메시지다.클라이언트-서버 모델메시지를 전송하는 객체를 클라이언트메시지를 수신하는 객체를 서버메시

2023년 5월 10일
·
0개의 댓글
·

코딩으로 학습하는 리팩토링 - 1. 이해하기 힘든 이름

리팩토링 대상인 코드함수 선언 변경하기변수 이름 바꾸기필드 이름 바꾸기좋은 함수 이름?어떻게 구현되었는지 코드를 보지 않아도 이름만 보고도 이해할 수 있다.(오브젝트에서는 이름에 구현 방법이 들어나면 안된다고 했는데...)어떻게 좋은 이름을 가진 함수를 만드나?주석을

2023년 5월 7일
·
0개의 댓글
·

오브젝트 - 05 책임 할당하기

책임에 초점을 두자 어떤 객체에게 어떤 책임을 할당할 것인가GRASP 패턴데이터는 객체가 책임을 수행하는 데 필요한 재료를 제공행동을 결정한 후에 데이터를 결정해야 한다 .협력에 적합한 책임 = 메시지 전송자에게 적합한 책임메시지가 객체를 선택하게 해야 한다."메시지를

2023년 5월 3일
·
0개의 댓글
·

오브젝트 - 04 설계 품질과 트레이드오프

객체 지향 설계의 핵심 - 역할, 책임, 협력협력 - 객체들의 상호작용책임 - 협력하기 위해 수행하는 행동역할 - 대체 가능한 책임의 집합(가중 중요)객체지향 설계의 핵심이 책임책임을 할당하는 작업이 응집도와 설계 품질과 깊이 연관객체에 행동에 초점을 맞춤으로서 결합도

2023년 4월 16일
·
0개의 댓글
·

SQL order by, unique 조건 반드시 추가 할 것

회사에서 1차 과제를 하던 중 쿼리를 이용하여 페이징을 하고 있는데 중복된 데이터가 등장하며 페이징이 제대로 동작하지 않는 문제가 발생하였다.정렬 기준에 unique한 컬럼을 추가하지 않아서 발생하는 문제였다. DB는 더 이상 사용할 정렬 조건이 없는 경우 알아서 판단

2023년 2월 25일
·
0개의 댓글
·

JPA와 MyBatis의 차이

SQL Mapper와 ORM은 개발자가 JDBC Programming(인간 매퍼)을 하지 않도록 기능을 제공한다.Object와 SQL의 필드를 매핑하여 데이터를 객체화 하는 기술객체와 테이블 간의 관계 매핑 아님SQL 문을 직접 작성하고 쿼리 수행 결과를 어떠한 객체에

2023년 2월 25일
·
0개의 댓글
·

mybatis like 검색 구문

mybatis like 검색 - postgresql, mysql 위에서 볼 수 있듯이 을 이용해 검색 키워드와 필요한 문자들을 합하여 사용할 수 있다. 위의 예시는 postgresql과 mysql에 한정된 방식인거 같으니 다른 vendor를 사용한다면 아래 블로그 글을 참고하도록 하자. 참고 [MyBatis] LIKE 검색 구문 (Oracle, Post...

2023년 2월 25일
·
0개의 댓글
·

like, ilike 차이

sql에서 키워드가 포함되어 있는지 여부를 판단할 때 사용하는 문법like : 대소문자 구분ilike : 대소문자 구분하지 않음postgresql, mysql의 default escape 문자는 (backslash)이다.

2023년 2월 25일
·
0개의 댓글
·

데이터 분석 SQL Fundamentals - Date, Timestamp, Interval

Date : 년월일Timestamp : 년월일 + 시간Time : 시간Interval : 기간, 음수와 양수 모두 나올 수 있다.to_date(문자열, 문자열의 포맷팅)to_timestamp(문자열, 문자열의 포맷팅)to_char(Date, 문자열 출력 포맷팅)::da

2023년 2월 12일
·
0개의 댓글
·

데이터 분석 SQL Fundamentals - join

모든 내용은 postgresql 기준입니다join on 문법을 사용하는 방법이 ansi join이라고 한다.현재 join 시 표준처럼 사용된다.view와 비슷하다.임시 테이블을 만든다.VIEW는 한번 만들어놓으면 DROP할때까지 없어지지 않지만 WITH절의 같은 경우

2023년 2월 12일
·
0개의 댓글
·

오브젝트 - 3장 역할, 책임,협력

객체지향 패러다임의 관점에서 핵심은 역할(role), 책임(responsbility), 협력(collaboration)

2023년 2월 11일
·
0개의 댓글
·

오브젝트 - 02 객체지향 프로그래밍

객체지향 패러다임으로의 전환은 객체에 초점을 맞출 때에만 얻을 수 있다.어떤 객체가 필요한지 고민할 것객체는 협력하는 공동체의 일원으로 볼 것 → 설계를 유연하고 확장 가능하게 만든다.도메인문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야클래스의 내부와 외부를 구

2023년 1월 30일
·
0개의 댓글
·

오브젝트 - 01 객체, 설계

소프트웨어의 모듈의 3가지 목적제대로 실행되어야 한다.변경이 용이해야 한다.이해하기 쉬어야 한다.이해 가능한 코드란 동작이 예상에서 크게 벗어나지 않는 코드관램객과 판매원이 극장의 통제를 받는다 → 예상에서 벗어남관람객(Audience)과 판매원(TicketSeller

2023년 1월 29일
·
0개의 댓글
·

스프링 입문을 위한 자바 객체 지향의 원리와 이해

1장 1장 정리 내용 2장 2장 정리 3장 3장 정리 4장 4장 정리 5장 5장 정리 6장 [6장 정리](https://github.

2023년 1월 29일
·
0개의 댓글
·

Transaction

데이터베이스에 상태를 변화시키는 작업의 논리적인 단위하나로 처리해야하는 명령문들의 그룹분할 할 수 없는 업무처리의 단위트랜잭션은 ACID 특징을 보장해야 한다.단 상황에 성능(동시성)을 위해 희생시킬 수 있다(by isolation level)트랜잭션에서 일관성과 동시

2023년 1월 28일
·
0개의 댓글
·

초보를 위한 쿠버네티스 안내서 - Secret

보안 정보를 관리하기 위해서 사용하지만 etcd에 그대로 저장되기 때문에 중요한 정보인 경우 외부 솔루션을 사용해야한다.쿠버네티스 안내서

2023년 1월 27일
·
0개의 댓글
·