IT Diary 54

[ Knowledge ] AOP (Aspect Oriented Programming) 의 정의

AOP란 ? AOP(Aspect Oriented Programming)의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써 재사용을 높여주는 프로그래밍 기법입니다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있게 만들어줍니다. 스프링 AOP 구현 스프링 AOP를 이용해서 공통 기능을 구현하고 적용하는 방법은 다음과 같습니다. 1. 공통 기능을 제공하는 Aspect를 구현한다. 2. Aspect를 어디(Point cut)에 적용할지 설정한다. 즉, Advice를 설정한다. 스프링 AOP 구현 방법 2가지 개발자는 공통 기능을 제공하는 Aspect 구현 클래스를 만들고, XMl이나 자바 설정을 이용해서 Aspect를 어디..

[ Knowledge ] API vs Library vs FrameWork

API(Application Programming Interface) 응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 프로그램 간에 연결을 시켜주는 다리라고 생각하면 쉽다. 특징 uri 를 통해 데이터를 받는 형태가 많음 구현과 독립적으로 사양(사용법)만 정의되어 있다 API에 따라 접근 권한이 필요할 수 있다. ex) Kakao Map API, java API, 여러 기업들의 오픈 API Library 단어 뜻 그대로 도서관으로 생각해보면 쉽다. 필요한 책이 있으면 대여하기 위해 도서관에서 빌려오는 것처럼, 응용 프로그램 개발을 위해 필요한 기능을 가져다쓰는 소프트웨어 특징 독립성을 가진다. 다른 라이브러리를 의존하지 않는다. 응용 프로그램이 능동적으로 ..

[ Knowledge ] GET과 POST 의 차이는?

HTTP 웹상에서 클라이언트와 서버 간에 데이터를 주고 받을 수 있는 프로토콜 HTTP 메소드에는 2가지 방식이 있는데, 그것이 GET 방식과 POST 방식 GET URL에 파라미터를 포함시켜 요청하는 방식이다. 예를들어 https://recordboy.github.io/login?id=user&pw=1234 라는 페이지가 있다고 치자, ? 마크를 통해 URL의 끝을 알리고, id라는 키(key)에 대해선 user라는 값(value)를, pw라는 키(key)에 대해서는 1234라는 값(value)을 전송한 것을 볼 수 있다. 여러개의 키와 값을 보낼 때는 &를 사용하여 이어준다. 이처럼 데이터가 노출되기 때문에 보안에 취약하며, 개인정보가 포함되지 않는 상황에서 캐싱을 하여 페이지 로딩 속도를 높일 때 ..

[ Knowledge ] Web Server 와 WAS 의 차이는?

Web Server Web Server의 개념 소프트웨어와 하드웨어로 구분된다. 1) 하드웨어 Web 서버가 설치되어 있는 컴퓨터 2) 소프트웨어 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램 Web Server의 기능 HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능을 담당한다. 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다. 기능 1) 정적인 컨텐츠 제공 WAS를 거치지 않고 바로 자원을 제공한다. 기능 2) 동적인 컨텐츠 제공을 위한 요청 전달 클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Re..

[ Knowledge ] 도대체 REST API가 뭔데?

요즘 들어 가장많이 듣고, 많이 물어보는 질문인 거 같다 도대체 REST API가 뭔데? A : 아니.. 어 그냥 인터페이스할때 쓰는 API 방식이야.. B : 그럼 API는 뭔데? A : 어..어 API는 API지.. 개발이라는 틀에 갖혀 본질적인 개념에 대해 무지한게 아닌가 깨닫게 되는 요즘인거 같다. REST API를 말하기에 앞서, 우선 API가 정확히 어떤걸 의미하는건지 알고가야할 것 같다. 위키디피아 사전상 API는 아래와 같다. “API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.” 사전상 의미는 역시 어렵다...

[ Dev Dairy ] 003. Teachable Machine 사용해보기

요즘 들어 여러가지를 해보려고 노력중인데 어떤 걸 해볼까 눈을 돌리다. Teachable Machine 이라는 나온지는 꽤 되었지만 인공지능 관련된 사물인식 머신러닝이다. 머신러닝이라고 하면 굉장히 어렵고 복잡할 것 같은데 Teachable Machine 을 이용하면 아주 쉽고 간단하게 머신러닝을 해볼 수 있다. 주소는 : teachablemachine.withgoogle.com/ Teachable Machine Train a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more – no expertise or c..

[ SQL ] 001. INDEX 의 정의

쿼리의 수행시간을 단축시킬 수 있는 가장 좋은 방법은 INDEX 생성 혹은 INDEX 힌트를 쓰는게 아닐까 생각합니다. 그러면, INDEX는 말로만 매일 인덱스, 인덱스하는데 정작 INDEX 가 무엇이고 어떤식으로 작동하는지 알기는 쉽지 않아서 공부도 할겸 같이 공유를 해볼까합니다. 1. INDEX 의 정의 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 쉽게 말하면, 책의 색인과 같다고 보면된다. ( * 색인은 책에 포함 된 키워드와 주요 용어를 찾는 포인터 역할을하는 페이지를 의미합니다. ) 오라클에서 제공하는 인덱스 종류는 총 4 가지. ( 인덱스의 종류가 이렇게 많은줄 몰랐다..) B*TREE 인덱스 비트맵 인덱스(BITMAP I..

IT Diary/# SQL 2021.03.17

[ SQL ] 002. INDEX SCAN

실무를 하다보면 가장 많이 접하게 되는 용어 중, 하나인 INDEX INDEX의 위키디피아의 정의는 아래와 같다. "데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조" 실제 우리가 책을 읽을 때도 제일 처음 접하게 되는게 INDEX(목차) 입니다. SQL에서도 동일하게 이 INDEX는 우리가 원하는 정보를 빠르게 찾도록 도와주는 역할을 합니다. INDEX를 생성하고,삭제 등등의 기본적인 내용은 자세하게 정리된 글들이 많아서 저는 실무에서 많이 사용되는 힌트 중에서 INDEX 관련된 내용을 정리해볼까 합니다. 전문 DBA가 아닌 단순 개발자의 눈으로 바라봐서 내용이 다소 부실할 수 있습니다. 1. Index Range Scan : 인덱스의 일부분만 범위 스캔해서 DATA를 엑세스 ..

IT Diary/# SQL 2021.03.16

[ Dev Dairy ] 002. selenium 환경준비

어떤 걸 제일먼저 해볼까 구글링해보다 구글하니... 크롤링이라는걸 해보고싶어졌다. * 크롤링 정의 : 크롤링(crawling) 혹은 스크레이핑(scraping)은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위다. 크롤링하는 소프트웨어는 크롤러(crawler)라고 부른다. 현재 개발환경은 Python 이다. Python 하면 빼먹을 수 없는게 요 pip 이다. * pip는 Python Package Index (PyPI) 저장소로부터 파이썬 패키지를 받아 설치하는 패키지 관리 도구입니다. Node.js의 NPM와 비슷하다고 생각하시면 됩니다. 크롤링은 아주아주 간단하게 pip 명령어를 통해 패키지 설치가 가능하다! pip install google_images_download 라고..해서 ..