일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 시큐리티
- Spring Security
- response
- Interceptor
- 관점지향프로그래밍
- http
- 스프링
- 인터셉터
- 자바
- Filter
- OOP
- java
- Redis
- Spring
- exception
- 스프링부트
- 트랜잭션
- network
- mybatis
- 디자인패턴
- aspect
- RestControllerAdvice
- request
- SQL
- 객체지향프로그래밍
- aop
- git
- spring boot
- MYSQL
- proxy pattern
- Today
- Total
목록전체 글 (81)
장쫄깃 기술블로그
상태 코드는 3자리 숫자로 만들어져 있으며, 첫번째 자리는 1에서 5까지 제공된다. 첫번째 자리가 4와 5인 경우는 정상적인 상황이 아니기 때문에 사이트 관리자가 즉시 알아야 하는 정보다. 1xx (조건부 응답) : 요청을 받았으며 작업을 계속한다. 2xx (성공) : 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며, 성공적으로 처리했음을 가리킨다. 3xx (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다. 4xx (요청 오류) : 클라이언트에 오류가 있음을 나타낸다. 5xx (서버 오류) : 서버가 유요한 요청을 명백하게 수행하지 못했음을 나타낸다. 1XX : Information responses 상태 코드가 1로 시작하는 경우는 서버가 요청을 받았으며, 서버에 ..

객체 지향 설계 5원칙 - SOLID 객체 지향 설계의 정수라고 할 수 있는 5원칙이 집대성되었는데, SOLID 원칙이다. SOLID는 각 5가지 원칙의 앞 머리 알파벳을 따서 부르는 이름이다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 SRP(Single Responsibility Principle) : 단일 책임 원칙 어떤 클래스를 변..

Java 현재시간 측정 함수 Java에서 기본적으로 제공하는 함수중 System.currentTimeMillis 함수를 이용하면 현재 시간을 밀리세컨드 단위로 출력할 수 있다. System.java 클래스에 있는 함수 설명을 보면 1970년 1월 1일 UTC 시간 기준으로 현재까지의 시간 차이를 밀리 세컨드 단위로 출력한 값이다. Returns the current time in milliseconds. Note that while the unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For exam..

다형성(Polymorphism)이란? 다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 또는 여러 형태를 받아들일 수 있는 성질, 상황에 따라 의미를 다르게 부여할 수 있는 특성 등으로 정의를 하기도 한다. 정리하면 다형성이란 하나의 타입에 여러 객체를 대입할 수 있는 성질로 이해하면 될 것이다. 다형성을 활용하면 기능을 확장하거나, 객체를 변경해야할 때 타입 변경 없이 객체 주입만으로 수정이 일어나게 할 수 있다. 또한 상속을 사용한다면 중복되는 코드까지 제거할 수 있으므로 더욱 객체 지향 설계와 가까워질 수 있다. 다형성을 구현하는 방법 다형성을 구현하는 여러 방법 중 대표적으로 알려져있는 오버로딩, 오버라이..

상속(Inheritance)이란? 상속은 객체들 간의 관계를 구축하는 방법이다. 상속은 기존 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것이다. 하위 클래스들에서 사용할 공통된 메소드를 상위 클래스가 제공해주고, 하위 클래스들은 상위 클래스에서 없는 기능을 추가하거나 재정의한다. 기존 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것 상속의 장점 1. 코드를 재사용할 수 있다. 하위 클래스들이 공통으로 사용할 기능을 상위 클래스에 적용하고, 하위 클래스는 필요할 때 기능을 추가하거나 재정의 하면 되기 때문에, 공통 코드를 재사용할 수 있다. public class Bird { public void fly() { System.out.println("푸드덕 푸드덕"); }..

캡슐화(Encapsulation)란? 객체의 속성(data fields)과 행위(methods)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉한다. 캡슐화는 객체 내부의 속성이나 행위를 외부에서 직접 접근할 수 없게 하는 것이다. 흔히 은닉과 혼동하는 경우가 많은데, 은닉화란 캡슐화를 통해 얻어지는 '실제 구현 내용 일부를 외부에 감추는 효과'이다. 객체의 속성과 행위를 묶으면 응집도가 올라가므로 자율적인 객체가 된다는 장점이 있다. 자율적인 객체가 되면 다른 객체의 영향을 덜 받기 때문에 자신의 상태를 스스로 잘 처리할 수 있게 된다. 그런데 이 상황에서 캡슐화가 이루어지지 않으면 외부에서 내부 속성에 접근하여 사용할 수 있기 때문에 결합도가 높아지고 응집도가 낮아지게 된다. 이렇게 되면 ..

추상화(Abstraction)란? 컴퓨터 과학에서 추상화는 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려내는 것을 말한다. 추상화는 이처럼 구체적인 사물들 간의 공통점을 취하고 차이점을 버리는 일반화를 사용하거나, 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것을 말한다. 핵심은 불필요한 코드를 제거하고 중요한 부분을 살려 단순하게 만드는 것이다. 추상화 예제 추상화란 공통적인 부분을 취하고 차이점을 버리는 것이라고 했다. 예를 들어 SuperCar, SnowCar, FastCar가 있다고 하자. public class SuperCar { public void move() { System.out.println("슈퍼하게 달립니다."); } } ..

객체 지향 객체 지향이란 현실 세계의 객체 모델을 바탕으로 프로그램을 구조화하고 개발하는 프로그래밍 기법을 말한다. 전통적인 프로그래밍 언어는 크게 객체 지향 프로그래밍 언어(Object Oriented Programing Language; OOP)와 절차 지향 프로그래밍 언어(Procedure Oriented Programming Language; POP)로 구분된다. 이는 과거 프로그래밍 언어의 구조적 특징에 따른 분류이며, 최근에 널리 쓰이고 있는 프로그래밍 언어들은 기본적으로 객체 지향에 기반을 두고 있다. 자바의 경우 JDK8에서부터 이러한 최신 경향을 반영하기 시작했다. 절차 지향은 순서대로 진행되며 순서가 틀려서는 안되고 어느 한 부분이 오류가 나면 그다음부터 전체적으로 마비가 되는 순차적인..

들어가며 프로젝트 진행 중 Client, Server Filter에서 Request, Response을 자동으로 암/복호화해주는 로직 개발을 맡았다. 자세한 내용은 아래 흐름도를 참고하면 된다. 그런데 개발 진행 중 문제가 발생했다. Request, Response 값을 한번 읽으면 다시 사용할 수 없는 문제였다. Request 값을 암호화 후 전송할 경우 빈 값이 전송되고, Response 값을 복호화할 경우 최종적으로 빈 값이 수신되었다. 해당 문제에 대한 트러블슈팅 과정에서 배운 점과 해결 방법에 대해서 설명해보려고 한다. HttpServletRequest, HttpServletResponse의 InputStream 문서를 보면 해당 현상에 대한 설명이 있다. If the parameter data..

들어가며 HTTP에 대한 설명은 해당 글을 참고 링크 : https://jangjjolkit.tistory.com/12 [Network] HTTP Request/Response 란 HTTP(HyperText Transfer Protocol) HTTP란 텍스트 기반의 통신규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이러한 규약을 통해 프로그램들이 규악에 맞춰 개발해서 서로 정보를 교환할 jangjjolkit.tistory.com HTTP Request와 Response는 기본적으로 같은 구조를 가지고 있지만 세부적으로 다른 점들이 존재한다. HTTP Request와 Response의 구조에 대해 자세하게 알아보려 한다. HTTP Request 메시지 구조 1. Start Line (시작줄)..