전체 글 52

제어의 역전이 뭐임!! [Inversion of Control]

진짜 뭐냐구ㅜㅜㅠㅠㅜㅠㅜㅠㅜㅠㅜㅠㅜㅜㅠㅜ Contents - 제어의 역전이 뭐임! - 의존성 주입이 뭐임??! - 둘이 뭔 차이임? 제어의 역전이 뭐임!! 제어의 역전은 하나의 설계 원칙입니다. 디자인 패턴이라고도 합니다. 프로그래머가 직접 객체의 생성과 소멸 객체간 관계같은 객체의 제어를 수행하는 것이 아니라, 여러 프레임워크, 컨테이너에서 제어를 수행하는 것 입니다. 확장 가능하고 모듈화된 프로그램을 구성하는 느슨한 결합을 달성하기 위해 다양한 종류의 컨트롤을 반전하는 것을 의미합니다. 여기에는 응용 프로그램의 흐름에 대한 제어와 개체 생성 또는 종속 개체 생성 및 바인딩의 흐름에 대한 제어가 포함됩니다. 이러한 제어의 역전은 클래스간의 결합을 느슨하게 설계하여 테스트가 가능하고 유지보수가 용이하게 ..

아 이게 뭐임! 2021.07.26

DTO랑 VO가 뭐임!! (코드 포함)

Contents - DTO가 뭐임! - VO가 뭐임! - 뭔 차이임? 세상에 코드 블럭 줄맞춤 진짜 잘했는데 자동으로 망가짐... DTO가 뭐임! - Data Transfer Object 의 약자로 데이터를 전달하기 위해 사용하는 객체이다. - 계층 간 데이터를 전달하기 위한 객체이다 특징 오직 getter / setter 메서드 만을 갖는다. 다른 로직을 가지지 않는다. 보내는 쪽에서 setter를 사용해 DTO에 데이터를 담아 보내고 받는 쪽에서 getter로 전달받은 DTO로부터 데이터를 꺼내쓰는 방식이다. 예시 class public class HumanDto { private String name; public String getName() { return name; } public void s..

아 이게 뭐임! 2021.07.25

Cache(캐시)가 뭐임!!!

Contents - Cache(캐시)가 뭐임! - Cache(캐시) 왜 씀! Cache(캐시)가 뭐임! 캐시를 설명하기에 앞서... 파레토 법칙을 알고계신가요...? 8:2의 법칙으로도 알려진 파레토 법칙이 캐시의 시작이었습니다. 파레토 법칙은 결과의 80%가 20% 원인에서 일어나는현상을 가르킵니다. 이 법칙은 여러곳에서 관찰되었는데 컴퓨터분야에서는 메모리의 20%가 전체 호출량의 80%이상을 차지한다는 것을 알아냈습니다. 여러분도 아시다싶이 제일 뚠뚠하고 느린 하드디스크부터 램 플래시메모리까지 속도에 따라 다양한 저장 장치가 있습니다. 메모리는 속도가 빨라질수록 가격도 가파르게 상승하는데 이러한 저장장치의 특성을 덕분에 마음같아서는 플래시메모리로 서버를 구성하고 싶지만 경제적인 이유로 불가능합니다. ..

아 이게 뭐임! 2021.07.24

세션이 뭐임!!

Contents - 세션이 뭐임! - 세션 왜 씀! 세션이 뭐임!!! 세션(Session)이란 사용자가 최초에 서버에 요청한 시점부터 종료할때까지 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술입니다. 쿠키와는 다르게 방문자의 요청에 따른 정보를 방문자 메모리에 저장하는 것이 아닌 웹 서버가 세션 아이디 파일을 만들어 서비스가 돌아가고 있는 서버에 저장합니다. 서버에 저장되기 때문에 사용자 정보가 노출되지 않습니다. (방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 칭한다고도 합니다...) 세션의 원리 - 세션 ID를 서버에서 클라이언트가 자시 웹사이트에 접속시 발급해준다. - 서버에서 클라이언트로 발급해준 세션 ID를 쿠키를 사용해서 저장합..

아 이게 뭐임! 2021.07.23

쿠키가 뭐임!!

Contents - 쿠키란 무엇인가! - 쿠키 종류 쿠키(cookie)란 무엇인가! 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 저장되는 작은 기록 정보 파일을 말합니다. 웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장합니다. 일반적으로 쿠키에는 만료일이 있습니다. 예를 들어, 브라우저를 닫는 경우 자동으로 삭제되는 쿠키도 있으며(세션 쿠키), 일부는 수동으로 삭제되기 전까지 남아있는 등 더 오랜기간 동안 컴퓨터에 저장되는 쿠키도 있습니다. 쿠키의 종류 웹사이트에 사용되는 쿠키의 종류는 다음과 같습니다. 세션 쿠키 : 메모리에 저장되어 브라우저 종료시 삭제되는 쿠키입니다 영구 쿠키 : 사..

아 이게 뭐임! 2021.07.22

[객체지향] 의존성이 뭐임!!

프로그래밍에서 말하는 의존성 dependency은 무엇인가...! 일단 프로젝트를 설계한다는 것은 코드를 어떻게 배치할 것인가에 대한 의사결정과정이다. 어떤 클래스에 어떤 코드를 넣을 것이고 어떤 패키지에 어떤 코드를 넣을 것인지 설계 한다고 보면된다. 설계의 초점은 코드들을 변경에 의해 서로 같이 변경되는 것들을 모아두는 것이다. 이러한 변경의 핵심이 바로 의존성이다...! (그렇다...!!) 의존성이라는 것은 무엇인가! (이번엔 진짜임...!) B가 바뀔때 A도 바뀔 수도 있을때 의존성이 있다고 표현한다. 즉, 변경에 의해 영향을 받는 것이 의존성이다. 여기서 A도 바뀔 수 있다고 표현했다. B에 대한 내부구현이 변경되더라도 A에 변경이 없을 수 있다는 뜻이다. (변경에 영향을 받을 수도 있는 가능성..

아 이게 뭐임! 2021.07.21

[자바스크립트] 배열 속 원하는 값 찾기

indexOf / includes 자바스크립트에서 indexOf 와 includes 를 이용하여 배열속 원하는 값을 쉽게 찾을 수 있다. indexOf 는 원하는 값의 첫번째 위치를 반환하고, 없을경우 -1을 리턴한다. var array = [1, 2, 3, 2] array.indexOf(2); // 1 반환 array.indexOf(5); // -1 반환 includes 는 true / false 로 있다, 없다를 직관적으로 리턴해줍니다. var array = [1, 2, 3] array.includes(2); // True 반환 array.includes(5); // False 반환 's' 조심하시길...

자바스크립트 2021.07.20

대학생에게 추천하는 백엔드 선택 가이드

대학생들에게 있어서 백엔드 언어와 프레임워크를 선택하는 것은 너무나도 어려운 일이다. 그런 여러분을 위해 심층적이고 다각화된 분석을 제시한다. (재미로) 물론 본인도 아직 단 한개의 언어도 숙련되지 못한 유치원생 미만 레벨의 개발자이며 지금 제시하는 모든 프레임워크를 단 한번도 사용하지 못해봤음을 알린다. 나도 이제 선택하려고 ㅎㅎ... 알아봤다... 일단 오늘 고민해볼 백엔드 언어와 프레임 워크는 PHP + 라라벨 or 루비 + 레일즈 or 파이썬 + 장고 or 자바 + 스프링 이다. 그렇다면 순위의 기준점!! 대학생에게 있어 제일 중요한 것은 무엇이냐!! 그것은 바로 커뮤니티가 얼마나 활성화되있고 자료가 얼마나 많은지일 것이다. 우리네에게 있어 제 1의 개발비법 컨트럴 C+V 를 사용하기 위해선 일단..

카테고리 2021.07.19

컴파일된 코드는 왜 보안성이 좋은가?

그러게... 열심히 JSP 관련된 문서를 찾아보다가 JSP(자바 서버 페이지)는 컴파일 되어 코드를 숨길 수 있어 보안에 매우 우수하다. 라는 내용의 글을 보았다. 아니; 왜 컴파일 되면 보안이 우수한거지..? 알고보면 너무 당연할 수 도있지만 일단 나는 뭔소리인지 이해를 못했기 때문에 열심히 찾아보기 전에 생각을 해보았을때 컴파일이 무엇인가.. 과거 선조들이 개발하던 시절에는 각각 기계(플랫폼)에 따라 서로 다르게 프로그램을 개발 해야했다. 이 과정을 매우 불편하게 여겨 플랫폼에 종속적이지 않는 고오오급 언어를 개발해 냈으니... 두둥!! 그것은 JAVA였다. 개발자는 JAVA언어로 프로그램을 개발하기만 하면 킹짱 자바 버츄어 머쉰~이 각각의 플랫폼에 맞는 어셈블리 언어로 바꾸어주었다. 이 킹짱 자바 ..

카테고리 2021.07.18

코드 리뷰

- 코드를 읽지 않고 가능한 리뷰 0단계 : 한 눈에 오류가 보이는가? 공백 오타 줄바꿈 변수명 코드 컨벤션 0단계는 여러가지 도구를 이용해 스킵할 수 있다! 1. 도구사용 prettier Vs Code - Code Spell Checker Lint eslint JsLint/JSHint husky 2. 컨벤션 문서 정리 코드를 읽고 하는 리뷰 1단계 : 기능 구현이 잘 되었는가? 1. 주어진 스펙이 구현이 잘 됬는가? - 기능의 정상동작여부 2. 버그 찾기 나아가 디버깅 하기 - 코드 상 보이는 명백한 버그 찾기 & 실행 시킨 후 버그 찾기 2단계 : 확장성이 좋은 코드인가? 1. 반복을 줄일 수 있는가? - 예시 : 자주 쓰는 부분이니 공통 유틸 할수로 만드는게 좋을 것 같습니다. - 만든 모듈을 모두..

카테고리 2021.07.17