| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Spring 예외처리
- 함수형 인터페이스
- Java
- mapstruct
- 리눅스 사용권한
- set-version
- Spring MVC
- ubuntu 패스워드
- http 응답코드
- REST HTTP API
- 배열 탐색
- custom exception
- Spring
- JAVA 재귀함수
- ubuntu
- file i/o
- 스키마 설계
- root passwd
- RestControllerAdvice
- 스키마 디자인
- 자료구조
- O(log n)
- AOP
- 코드스테이츠
- char to int
- git 설정
- 탐욕 알고리즘
- ubuntu passwd
- git workflow
- N:N
- Today
- Total
목록전체 글 (68)
개발소설
매일 회고 -> 주간 회고 -> 섹션회고(월간 회고) 주기가 많이 바뀌었다.. 원래 매일 회고를 쓰다가 주간회고로 바꿨는데 그마저도 못하고 있다.. 대신 TIL에 매일 느낀점을 조금씩적어 매일 회고처럼 쓰고있다. 섹션 회고는 정규 과정중 하나 이기 때문에 꼭 적어야 한다. 기분이 어떠한가? 정말 힘들었다. 알고리즘, Spring 핵심개념 (특히 aop)할때 너무나도 힘들었다 이해가 잘안가고 너무 어려워서 진짜 고비가 많았다 지금도 완벽히 이해한건 아니다. 둘다 이론적인건 그래도 좀 이해했는데 실제로 써먹기가 어렵다. 그외에 자료구조나 HTTP, DB 등등은 예전에 했던 기억이 좀 남아있어 수월한 편이였다. (개념이해) 솔직히 포기하고 싶다는 생각이 많이 들었는데 그래도 꺾이지 않는 마음을 가지자고 다짐을..
두 수를 입력받아 거듭제곱을 리턴 시간복잡도 O(logN) 실제 계산 결과를 94,906,249로 나눈 나머지를 리턴 (long 타입의 표현 범위를 넘어 설수 있으므로) o(log n)은 업다운 게임과 비슷하다. - 값을 계속 반으로 나누어 답을 찾는다. 아래와 같이 구할 수 있다. n^10 = n^5 * n^5 n^5 = n^2 * n^2 * n n^2 = n*n n = n * 1 public long power(int base, int exponent) { // 탈출조건(더이상 나눌수 없는 경우) if(exponent == 0) return 1; // 절반 나누기 n^10 = n^5 * n^5 long result = power(base, exponent / 2); // 홀수라면 n^2 * n^2 *..
AOP (Aspect Oriented Programming) 관점 지향 프로그래밍을 의미 Core Concerns (핵심 관심사)에서 횡단 관심사(Cross-Cutting Concern)를 분리함으로써 모듈성을 증가시키는 프로그래밍 기법 여러 객체에 공통으로 적용할 수 있는 기능을 분리하여 반복 작업을 줄이고 핵심 기능 개발에만 집중 할 수 있다. 로깅, 트랜젝션, 보안 등 예를 들자면 어떠한 비즈니스 로직에 실행시간을 측정하는 코드를 만들어서 적용 했는데 이것이 유용해서 다른 비즈니스로직들에도 이것들을 적용하고 싶을떄 적용해야 하는 비즈니스 로직이 몇천개 혹은 몇만개라면? 그 로직들에 일일히 코드를 추가 하는것은 매우 비효율적 이기 때문에 횡단(공통)관심사로 만들어 핵심 로직을 수정하지 않고 공통 기능..
DI(Dependency Injection) 의존성 주입 생성자를 통한 의존관계 주입이 스프링에서 공식적으로 추천하는 방법 스프링 컨테이너(Spring Container) 스프링 컨테이너는 스프링 프레임워크의 핵심 컴포넌트 컴포넌트 : 재사용 가능한 웹의 구성요소(각각의 독립된 모듈) 자바 객체(Bean)의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공 Bean 생성, 관리, 제거 등의 역할 (생명주기) 애플리케이션 컨텍스트라고도 한다. 빈(bean) 인스턴스화된 객체를 의미 스프링은 스프링 컨테이너를 통해 객체를 관리, 스프링 컨테이너에서 관리되는 객체를 빈(Bean) bean은 애플리케이션에서 사용하는 객체, 설정 정보와 함께 스프링 컨테이너에 등록된 객체(인스턴스화된 객체)를 ..
복사 얕은 복사는 객체의 참조값을 복사하는 것을 의미 깊은 복사는 내용이 동일하지만 참조값이 다른 새로운 객체를 생성하는 것을 의미 DI 의존성 주입이란, 객체가 자신이 의존할 객체를 스스로 만들도록 하는 것이 아니라 외부에서 주입해주는 것을 의미 의존성 주입의 기반 원리는 추상화와 다형성 인터페이스를 통해 공통된 메서드들을 추상화하여 추상메서드로 정의하였고, 인터페이스를 타입으로 사용한 필드를 정의함으로써 다형성을 통해 구현 클래스의 객체를 할당받을 수 있기 때문 단 하나의 객체만 생성되도록 코드를 작성하는 패턴을 싱글톤 패턴(Singleton pattern) Math 함수 Math.abs() 절대값 Math.floor() 소수점이하 버린다 Math.pow () 제곱값 주요 사용 메서드 String 클..
쿠키(cookie) 웹사이트를 방문시 사용자의 대한 정보등을 사용자 PC내에 저장하는 작은 기록 정보 파일 웹사이트내에서 페이지를 이동하거나 웹사이트를 재방문 할때 쿠키를 참조하여 이전과 같은 상태를 유지 할 수 있다. 자동로그인, 마지막 페이지등 요청페이지와 함께 쿠키를 전달한다. 세션(Session) 웹사이트를 접속시 일정한 시간(접속 시점부터 종료 시점)동안 사용자의 상태를 웹서버내에 저장하여 사용자의 상태를 유지하는것을 Session이라 한다. 세션을 유지함으로써 웹사이트내 다른페이지로 이동하더라도 사용자의 상태를 유지 할 수 있다. 유지 시간을 따로 설정해두는 경우도 있다 ( 정해진 시간내 다른 행동이 없으면 세션이 끊긴다) 쿠키와 세션의 차이점 쿠키 세션 저장 위치 사용자 PC (클라이언트) ..
Spring Framework 자바 플랫폼에서 사용하는 웹애플리케이션 프레임 워크이다. Framework 프로그래밍을 하기 위한 틀(frame), 구조를 제공한다. 정해진 규약을 제공하여 그 규약에 맞게 프로그래밍 할 수 있다. 개발자들이 프로그래밍의 구조에 신경쓰지 않고 핵심 비즈니스 로직 개발에 집중 할 수 있게 해준다. Framework와 Library의 차이 프레임워크는 전체적인 구조를 제공하는것 라이브러리는 프로그래밍시 필요한 어떠한 기능을 제공하는것 애플리케이션 흐림의 주도권이 라이브러리는 개발자에게 있고 프레임워크는 프레임워크에 있다(Ioc) 어떤 라이브러리를 쓸지 개발자가 직접 정하지만, 프레임워크 사용시 프레임워크의 룰을 따라야 한다. Spring Framework를 사용하는 이유 객체 ..
스키마(Schema) 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다 데이터베이스의 구조를 설계할때 스키마 디자인 한다고 표현 하기도 한다. https://dbdiagram.io - 스키마 다이어그램 그리기 좋은 사이트 관계형 데이터베이스 구조화된 데이터는 하나의 테이블로 표현, 이것을 Relational(관계가 있는) 테이블로도 부르며 관계형 데이터베이스는 관계가 있는 테이블들의 집합이다. 용어정리 테이블(table) 구조화된 데이터로 행과 열을 가진다. 행(row)=튜플=레코드 데이터 열(coulmn)=필드=속성 데이터의 속성 key (식별자 - Identifier) 테이블내 레코드를 구분하거나 찾기 위한 수단 key를통해 데이터를 식별 할 수 있다. ..