본문 바로가기

분류 전체보기85

MVC , MVC 하는데 MVC가 뭔데? MVC 패턴이란 Model View Controller 구조라고 할 수 있다. 그러면 모델, 뷰 , 그리고 컨트롤러가 무엇일까? MVC 기초패턴을 아래 그림을 통해 쉽게 이해해보자! 첫 시작은 하단의 파란색 원모양의 도형에서부터 우측-> 시계 반대방향으로 흘러간다. 원형에 적힌 USER는 웹페이지를 접속한 이용자, 즉 우리 자신이라고 이해하면 쉽다. 여러분이 네이버라는 사이트를 접속하려고 한다고 가정해보자. 네이버에 접속하기 위해 주소창에 주소를 입력하고 엔터를 치거나 네이버 링크를 클릭하거나 지정된 홈페이지라서 웹브라우저를 그냥 열었거나 하면 네이버가 켜진다. 그러면 어떻게 켜지는걸까? 우리가 연극을 보면 연출을 돕는 수많은 스텝들이 조명이 꺼졌을 때 무대에 필요한 소품을 재빠르게 옮겨놓곤 한다. 마찬.. 2022. 5. 5.
[Spring Boot] 윈도우 명령프롬프트(cmd)로 스프링 부트 실행하기! CMD 에서 스프링 부트 실행하기 가장 먼저 해당 파일이 있는 경로로 이동을 해야한다. 본인이 만든 프로젝트의 파일이 로컬디스크 C에 존재한다면 cmd의 경로도 C:\>로만 잡혀야 하는것이다. 하지만 대부분 그렇지 않고 C://User//사용자 이름으로 잡혀있을 것이다 아래의 명령어를 사용한다면 경로를 바꿀 수 있다. cd/ ======>최상위 폴더 cd.. ======>상위 폴더 cd ======>현재 폴더 즉, C:\Users\사용자이름> 이 경우에서는 cd/를 한번 눌러서 최상위 폴더이자 해당 프로젝트가 있는 로컬디스크 C 로 갈 수 있다. 이후 현재 경로에서 찾을 파일명을 입력해준다. 만약 로컬디스크 c에 있는 study 라는 폴더 밑에 hello-spring이라는 프로젝트 폴더가 있다면 가장 먼.. 2022. 4. 2.
[Java] 상속이란? + Interface가 뭐고 그거 왜 쓰는건데? 자바에서 가장 중요한 개념이라고 할 수 있는 것이 상속인데 상속이란 문자 그대로 부모에게 무언가를 물려받는 것이다. 우리가 흔히 알고있는 금수저가 좋은 예시가 될 수 있을 것이다. 금수저는 태어날 때부터 금으로된 수저를 물고 태어났다고 해서 붙여진 이름인데 부모가 가진 모든~것을 자식이 갖기에 자식은 본인이 기존 소유하고 있는 것 + 부모의 것을 소유하게 된다. 그리고 상속을 하기 위해서는 extends라는 키워드를 꼭 써줘야 한다. Extend라는 키워드의 뜻은 확장하다, 손 따위를 뻗치다 라는 뜻으로 부모클래스가 더 넓고 포괄적인 개념이고 자식클래스가 좀더 세부적인 디테일을 다룰 때 쓰는데 부모의 것을 사용하기 위해서 extends라는 키워드를 쓰는 것이다. ex) 자식클래스 extends 부모클래스.. 2022. 3. 19.
[Spring] DI가 뭐길래? IOC 는 또 뭐고? <쉬운 개념 정리> 우리가 일상생활에서 가장 많이 쓰는 휴대기기인 스마트폰. 이 스마트폰의 배터리는 분리형과 일체형으로 나눌 수 있다. 지금은 일체형이 훨씬 더 보편적인 반면 과거에는 분리형이 압도적으로 많았다. 그때는 분리형이었기 때문에 배터리에 문제가 생기면 그 고장 난 배터리만 새 배터리로 갈아끼우면 해결 됐다. 반면 요즘 쓰는 일체형 스마트폰 같은 경우 배터리가 고장 나면 사실상 액정부터 해서 다 바꿔야 한다. 왜냐면 일체형이라는 것은 결국 한몸이라는 뜻이고 분리할 수 없는 사이를 의미하기 때문이다. 이를 조금 유식한 말로 결합력이 높다고 할 수도 있다. 물론 요즘 배터리가 좋아져서 고장도 거의 안나고 어쩌다 고장 나도 스마트폰을 금방 교체하는 추세이기 때문에 괜찮지만, 잦은 변경 및 업데이트가 일어나는 개발 세계에.. 2022. 3. 19.
[JAVA] 선언되는 위치에 따라 달라지는 변수의 타입 (CV,IV,LV) 변수가 선언되는 영역은 두 가지로 나뉜다. 1. 클래스 영역 ------------||------------- 2. 메서드 영역 클래스 영역은 메서드 영역을 제외한 모든 영역을 말하고 메서드 영역은 메서드 내에서만 존재하는 영역을 말한다. *메서드: 어떠한 특정 작업을 수행하기 위한 명령문의 집합 실생활로 빗대자면 우리가 기숙사에 거주하고 있다고 가정 한다면 클래스 영역은 각자의 방을 제외한 모든 곳(편의시설, 식당, 복도, 등등)을 나타내고 메서드 영역은 각자의 방이 되겠다. 그렇다면 클래스 영역에 선언되는 변수와 메서드 영역에 선언되는 변수는 어떤 게 있을까? 클래스 영역: 클래스 변수, 인스턴스 변수 메서드 영역: 지역 변수 클래스 변수와 인스턴스 변수는 클래스 영역(글로벌 영역)에 선언된다는 공통.. 2022. 3. 19.
[JavaScript] 콜백함수 (CallBack)가 도대체 뭐길래? 앞서 자바스크립트의 작동원리 및 비동기와 동기를 설명하면서 어떤 이유에서인지 실행하는데 시간이 걸리는 코드가 생기고 그래서 그걸 잠시 죽이는 비동기화를 진행하게 되면 아래의 코드가 먼저 실행이 되어서 순서가 꼬일 수 있다고 했다. 이제 그 순서를 꼬이지 않게 하기 위해 프로그래머가 임의로 아래의 코드 또한 비동기화시켜서 임시저장소로 보낼 수 있다고 했다. 그러면 어떻게 그게 가능할까? 바로 오늘 설명할 콜백함수를 이용하면 가능하다. Call Back. 문자 그대로 돌아오라고 부르는 것이다. 집나간집 나간 아들을 향해 "집으로 돌아와~!!!" 해서 집 나간 아들이 집에 다시 돌아온다면 그것이야 말로 콜백이다. 뜬금없이 무슨말인가? 비동기화가 진행되게 되면 코드가 임시저장소로 보내지고 그 코드는 거기서 컴퓨.. 2022. 2. 27.
[JavaScript] 코드 인터프리터 작동 원리 및 순서 ( 비동기 vs 동기) 기본적으로 컴퓨터는, 그리고 인터프리터는 작성된 코드를 위에서부터 읽고 순차적으로 코드를 실행시킨다. 즉 위에서 아래로 코드 실행 순서가 정해진다는 뜻이다. 하지만! 특정 코드에서 결과를 얻기까지 오랜 시간이 걸리면 어떻게 될까? 예를 들어 1분이 걸린다고 가정해보자. 그러면 아래 줄의 코드는 전혀 실행되지 않는 병목 현상이 생기게 되는 것! 언제 그럴까? 1. 네트워크 통신 2. 복잡한 계산을 실행하는 코드 3. 타이머를 정해두고 그 시간이 만료되면 코드를 실행하는 함수를 쓴 경우 (예: setTimeout(), setInterval() ) 가 대표적인 케이스이다. 위와 같은 상황을 방지하고 빨리빨리 실행할 수 있는 것부터 실행하기 위해서 자바스크립트는 비.동.기 방식을 지원한다. 비동기 방식이란? 어.. 2022. 2. 18.