전체 글 (109) 썸네일형 리스트형 5. 스프링 AOP 책, 유튜브 김영한님의 AOP적용을 참고하여 정리하였습니다. AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법 AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드를 수정하지 않고 공통기능을 적용할 수 있게 만들어준다. AOP 어떻게 쓰일까? 좋은 코드를 짜기 위해 로직에 맞게 하나의 함수에 하나의 핵심 기능만 갖는 것을 지향한다. 추가적인 기능이 들어가거나 부가 기능을 넣는다면 기능 자체가 모호해지고 다른 곳에서 쓰기도 애매해진다. 그리고 유지보수의 어려움도 있다. AOP는 관점지향 프로그래밍의 줄임말이다(기능, 관심이라 이해하는 것이 좋음). 여기서 말하는 .. Proxy 프록시 클라이언트와 서버 사이에서 중계 역할을 담당한다. 주로 보안, 트래픽 분산의 역할을 한다. 응용프로그램 수준에서만 동작(L7) 프록시(Proxy) 클라이언트와 서버 사이에서 중계기를 역할을 하며 서버 대신에 프록시 서버와 클라이언트 사이에서 통신을 하여 원활한 통신이 이루어질 수 있도록 하는 기능이 있음 캐시 / 필터 / 보안 / 트래픽 분산 등의 장점 서버의 대리 역할(리버스 프록시)을 할 때도, 클라이언트의 대리역할(포워드 프록시)을 할 때도 있음 프록시는 위치에 따라 포워드 프록시와 리버스 프록시로 나누어짐 포워드 프록시(Forward Proxy) 포워드 프록시는 인터넷과 클라이언트 사이에 위치 클라이언트의 요청을 프록시의 요청인 것처럼 하여 서버에 전송할 수 있음 서버에 요청된 정보를 캐시를 이용.. OSI 7 Layer와 TCP/IP 4 Layer OSI 7 계층과 TCP/IP 4 계층은 네트워크의 기본 계층 구조이다. TCP/IP 모델은 인터넷의 개발 이후 표준화되어 실질적인 통신에 쓰이고 있다. 즉, OSI 모델은 이론적으로 많이 활용이 된다. 일반적으로 하위계층은 하드웨어를 통해서 구현되었고, 상위 모델은 운영체제의 커널에 소프트웨어적으로 구현되었다. OSI 7 Layer 국제 표준기구(ISO)에서 표준화된 네트워크 구조를 제시한 기본 모델 통신 기능 7개의 계층으로 분할하여 각 계층마다 다른 계층과는 무관하게 자신의 독립적인 기능을 지원하도록 함 기술의 동작 원리나 분석할 때 많이 쓰임 1. Physical Layer (물리 계층) 하드웨어로 구성되어 있음 -> 전자회로 전기적 기계적 특성을 이용해서 통신 케이블로 데이터 전송 Bit(0, .. 4. 람다함수의 개념 이해하기 + 스트림 fastcampus 사이트의 'Java 웹 개발 마스터' ,유튜브 '어라운드 허브 스튜디오 - 람다함수'를 보고 공부 목적으로 정리 하였습니다. ▶ 람다함수란 프로그래밍 언어에서 사용되는 개념으로 익명함수(Anonymous Function)를 지칭하는 용어로 함수를 변수처럼 사용합니다. 따라서 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행할 수 있습니다. 람다함수를 사용하는 것은 함수형 프로그래밍이라고 이야기합니다. 함수형 인터페이스를 선언하고 메소드를 구체화하여 사용합니다. - JAVA 8버전 이상부터 지원 ▶ 함수형 프로그래밍이란 람다함수는 추가 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행하는 방식입니다. 순수함수를 구현하고 호출 → 부작용(sside-effect)가 없는 함수, 함수.. 3. 템플릿 메소드 패턴 VS 전략패턴 코딩을 하다 보면 주먹구구식으로 코드를 칠 때가 많았습니다. 예로 if-else문과 try/catch문 이 있습니다. 코드가 비슷한 부분이 있다면 Copy & Paste로 작성을 하기도 하고 여러 변수를 써가며 메모리를 낭비하기도 했습니다. 하지만 코드의 양이 증가함에 따라 복잡해지고, 오류도 많아지고 실수할 가능성도 높아졌죠. 이러한 문제를 지양하기 위해 SOLID 원칙 중 하나인 OCP 원칙을 적용한 템플릿 메소드 패턴과 전략 패턴에 대해 알아보려고 합니다. ▷ if - else문의 문제점 메소드의 변경, 확장이 될수록 코드의 복잡성 증가 복잡해질수록 오류 발생 원인 파악의 어려움 실수할 가능성 증가 → 유지보수의 어려움이 있다. SOLID (객체 지향 설계) - 위키백과, 우리 모두의 백과사전 ko.. 2. 토비 Chapter 4.템플릿 내용 정리 템플릿 : 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법 변하지 않는 부분은 슈퍼 클래스에 두고 변하는 부분은 추상 메소드로 정의해둬서서브클래스에서 오버라이드하여 새롭게 정의해 쓰도록 하는 것 풀(Pool) 방식 : 미리 정해진 풀 안에 제한된 수의 리소스를 만들어 두고 필요할 때 이를 할당하고, 반환하면 다시 풀에 넣는 방식 템플릿 메소드 패턴으로의 접근 제한 DAO 로직마다 상속을 통해 새로운 클래스를 만들어야 한다는 점 확장구조가 이미 클래스를 설계하는 시점에서 고정되어 버린다는 점 전략패턴 :OCP관점에 보면 확장에 해당하는 변하는 부분을 별도의 클래스로 만들어 추상화된 인터페이스를 통해 위임하는 방식 중첩.. 1. Spring annotation fastcampus 사이트의 'Java 웹 개발 마스터 올인원 패키지' 를 수강하며 공부 목적으로 작성하는 글입니다. Controller 주소 관련 Annotation annotation 의미 @Autowired Spring Boot가 관리하는 Bean을 주입 받기 위한 설정 @RestController 적용된 Class가 REST API로 동작하도록 설정 @Controller 적용된 Class가 View(html)를 내리도록 설정 @RequestMapping 외부에 주소를 노출하는 설정 - @RestController, @Controller, @HTTP GET, POST, PUT, DELETE 등 적용가능. - method를 지정하지 않으면 전부 동작 @GetMapping RequestMapping m.. Web에서의 인증과 인가(세션과 토큰) 보안에 있어서 인증과 인가는 필수적인 요소로 정보 시스템에서 사용자나 시스템의 접근을 제어하는 중요한 역할을 한다. 인증을 통해 사용자의 신원을 파악하고, 인가 과정을 거침으로서 사용자가 특정 자원이나 기능에 접근할 수 있는 권한을 확인하고 부여한다. 해당 글에서 혼동되기 쉬운 용어인 인증과 인가의 정리와 함께 웹에서는 인증과 인가가 어떠한 방식으로 이뤄지고 있는지 알아보자인증과 인가1. 인증(Authentication)사용자의 신원을 확인하는 절차인증은 사용자가 자신임을 증명하는 과정이다. 상황에서 예를 찾아보면 주민등록증이 해당한다. 2. 인가(Authorization)인증된 사용자가 특정 자원이나 기능에 접근할 수 있는지 확인하는 절차 인가는 확인된 사용자가 무엇을 할 수 있는지 결정하는 과정이다.. 이전 1 ··· 7 8 9 10 11 12 13 14 다음 목록 더보기