WEB
-
[Spring] 스프링 부트 동작 원리WEB/Spring 2020. 9. 15. 13:06
1. 내장 톰캣 톰켓을 따로 설치할 필요 없이 바로 실행가능하다. A와 B가 서로 메세지를 주고 받기 위해서는 OS에서 제공하는 소켓이 필요하다. 예를들어 A가 5000번 포트번호로 최초의 연결 용도로 소켓을 오픈한다. B가 A의 IP주소와 포트번호를 통해 5000번 포트에 연결을 성공하면, 무작위 포트 번호로 새로운 소켓을 만들고, 5000번 포트는 연결이 끊긴다. 이때 5000번 포트로 다른 사용자의 연결 요청을 계속 받기 위해서 새로운 포트와의 통신을 다중 스레드를 이용한다. 소켓 통신의 장점은 연결이 끊어지지 않는다는 점, 단점은 그 때문에 연결이 늘어날수록 부하가 크다는 점 HTTP 통신은 요청과 응답이 이루어지면 바로 연결을 끊어버리기 때문에 부하가 적다는 장점이 있지만, 연결을 끊어버리기 때..
-
[Spring] JPA 개념 잡기WEB/Spring 2020. 9. 14. 02:40
1. JPA는 Java Persistence API 이다. Persistence, 영속성은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는다. 영속성은 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터 베이스 등을 활용하여 구현한다. JPA는 자바에 있는 데이터를 영구히 기록할 수 있는 환경(DBMS)에 저장하는 API 인터페이스를 통해 프로그래밍을 하고 이를 통해 프로그램을 만드는 것 즉 API란 프로그램을 만들기 위해서 제공하는 인터페이스를 의미한다. 홍길동이라는 사람이 장보고의 프로그램을 사용한다고 하면 장보고는 다음과 같이 약속을 정할 수 있다. 이때 약속은 상하관계가 존재하는 약속이다. 홍길동이 장보고의 프로그램을 사용하기 위해선 해당 인터페이스를 반드시 지켜야한다. 그러나 프로토..
-
[Spring] 스프링 개념 잡기WEB/Spring 2020. 9. 13. 23:02
1. 스프링은 프레임워크이다. 프레임워크란 틀 안에서 동작하는 것을 의미 "신입 개발자들아 요 틀 안에서만 작업하면 나처럼 고수가 될 수 있어!" 2. 스프링은 오픈소스다. 오픈소스란 소스코드가 공개 되어있다는 것을 의미 => 내부를 뜯어 고칠 수 있음! 3. 스프링은 IoC 컨테이너를 가진다. IoC(Inversion of Controller), '제어의 역전'이란 주도권이 스프링에 있음을 의미 위와 같이 make() 메소드와 use() 메소드의 의자는 다른 메모리 공간에서 실체화 된다. 의자를 공유하고 싶으면 make() 메소드에서 실체화 된 의자를 use() 메소드로 어떠한 로직을 통해 넘겨줘야한다. 그러나 이러한 로직을 짜기 굉장히 힘듬 그래서 스프링이 IoC를 통해 이러한 작업을 도와줌 스프링이..
-
[GIT] Github Repository와 GitBash 연결하기WEB/Git 2020. 8. 8. 19:58
Github Repository 생성 https://github.com/ Build software better, together GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects. github.com 깃헙 홈페이지에 접속하여 로그인을 한 후(계정이 없을 경우 회원가입을 먼저 진행) 다음과 같이 저장소를 생성해줍니다. GitBash 연결하기 연결을 원하는 소스 폴더를 찾아간 후 해당 폴더에서 다음과 같이 'Git Bash Here'를 눌러줍니다. 'git init' 명령어를 통해 로컬 저장소를 만들어 줍니..
-
[Spring] 스프링 MVC 프레임워크 설계 구조WEB/Spring 2020. 7. 19. 19:56
1. 웹 프로그래밍을 구축하기 위한 설계 모델 위의 그림과 같이 브라우저(클라이언트)에서 요청을 서버로 보내면 WAS(웹 어플리케이션 서버)에서 처리를 하게 됩니다. 이때 관련 정보를 DB(데이터베이스)에 접근해서 데이터를 찾고 그 데이터를 사용자의 응답에 맞게 가공하여 브라우저에게 응답해주는 모델입니다. 모든 것을 하나에 구현하기 때문에 개발속도가 빠르다는 장점이 있지만 유지보수의 측면에서 아주 큰 단점을 가지고 있습니다. Model2는 이러한 Model1의 단점을 보완한 설계 모델입니다. 철저하게 기능은 Service, DB와 연동되는 것은 DAO, 사용자에게 보여주기 위한 것은 View, 그리고 이러한 것들을 컨트롤 해주는 것을 Controller 모듈로 분리합니다. 이렇게 각각의 기능들을 모듈화 ..
-
[Spring] 스프링 MVC 3-tier 구성WEB/Spring 2020. 7. 18. 16:12
Presentation Tier Business Tier Persistence Tier EX) (Spring MVC) (Spring core) (MyBatis) DB Presentation Tier(화면 계층) 화면에 보여주는 기술을 사용하는 영역 프로젝트의 성격에 맞춰 앱으로 제작하거나, 클라이언트-서버로 구성되는 경우가 있음 스프링 MVC와 JSP 등을 이용한 화면 구성이 이에 속함 Business Tier(비즈니스 계층) 순수한 비즈니스 로직을 담고 있는 영역 고객이 원하는 요구사항을 반영하는 계층이므로 중요 영역의 설계는 고객의 요구사항과 정확히 일치해야함 주로 'xxxService'와 같은 이름으로 구성, 메서드의 이름 역시 고객들이 사용하는 용어 그대로 사용 Persistence Tier(영속..
-
[Spring] 스프링의 주요 특징WEB/Spring 2020. 7. 17. 20:56
스프링의 주요 특징 POJO(Plain Old Java Object) 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP(Aspect-Oriented-Programming) 지원 편리한 MVC 구조 WAS의 종속적이지 않은 개발 환경 POJO 기반의 구성 스프링 내부에는 객체 간의 관계를 구성할 수 있는 특징을 가지고 있음 이 관계를 구성할 때 다른 프레임워크와 다르게 별도의 API 등을 사용하지 않는 POJO 구성 즉 자바 코드를 이용하여 객체를 구성하는 방식을 스프링에서 그대로 사용 가능 이는 개발자가 특정한 라이브러리나 컨테이너 기술에 종속적이지 않음을 의미 생산성에서 유리, 테스트 작업이 유연함 의존성 주입(DI)과 스프링 '의존성'이란 하나의 객체가 다른 객체 없이 제대로 된 역..
-
[JavaScript] 자바스크립트 기초WEB/JavaScript 2020. 7. 8. 22:28
index.html Hello World! index.css body { background-color: peru; } h1 { color: #34495e; transition: color 0.5s ease-in-out; } .clicked { color: #7f8c8d; } index.js // const title = document.getElementById("title"); // const title = document.getElementsByClassName("btn"); const title = document.querySelector("#title"); const CLICKED_CLASS = "clicked"; function handleClick() { // const hasClass = ..