Search
Duplicate
😀

03. Web 기초(동기/비동기, HTML, STS, Mybatis)

태그
동기, 비동기 (Web)
동기 통신 - 호출자가 결과를 받기 전까지 제어권을 가지지 못함 - 페이지의 이동이 발생 - 모든 내용을 화면에 다시 출력 - 모든 정보를 다시 받아오므로 속도가 느림 비동기 통신 - 통신 요청 후 처리 결과가 올때까지 다른 일을 하고 있다가 처리 완료 후 알림을 통해 결과를 받음(Call Back) - 전체 화면 중 일부만 갱신 - JS, AJAX, Jquery(크로스브라우징) 등을 활용함
HTML과 동적 효과
HTML은 JavaScript, CSS의 도움을 받아 동적 효과를 낸다. HTML은 DOM Tree를 바탕으로 화면에 출력한다. ⇒ 동적 효과를 위해 DOM Tree를 변경시킨다.
STS (Spring Tool Suite)
Eclipse를 기반으로 Spring을 사용할 수 있도록 해준다. (or Eclipse에서 플러그인 설치) STS & Maven Boot project는 maven(make tool) 기반으로 되어있다. Maven을 사용하면 라이브러리끼리의 의존성을 관리해준다. A → B → C (A를 위해 B가, B를 위해 C가 필요)의 경우 A만 명시하여도 Maven이 A,B,C 의 모든 라이브러리를 가져와준다. <만약 A를 지우면 A,B,C 전부 참조 해제됨> Pom.xml maven Project의 라이브러리 정보를 dependency로 명시한다. ⇒ maven이 자신의 중앙 레포지토리로부터 가져와서 local 레포지토리에 등록 Applications.properties Spring boot에 기본적으로 세팅되어 있는 값들을 변경할 수 있는 파일 Key : Value 형태로 값을 관리한다. 기존에 약속되어있는 변수명이 정의되어 있다. ex) spring.datasource.username="AAA"
Maven Project 구조
Maven Project에서는 컴파일에 필요한 소스와 컴파일이 필요없는 파일들을 구별한다. src/main (Production 목적) - src : 소스 코드 - resources : 컴파일되지 않는 소스코드가 아닌 것들 src/test (Test 목적)
Autowired (의존성관리 - DI)
Controller 코드
Autowired Interface 를 구현하지 않고 그대로 선언해도 자동으로 엮어주는 기능 원래는 interface를 구현한 객체를 선언해야 하지만 Spring Framework에 의해 의존하는 객체가 자동으로 주입된다. ⇒ 자신에게 등록된 모든 애들을 검사하여 자동으로 넣어준다. 장점 구현된 interface가 바뀌어도 Controller의 코드는 바뀌지 않는다. 서비스와 컨트롤러의 의존성을 낮춤!!
Mybatis
WordMapper.java
word.xml
Mybatis.. (잘 모르겠다. 나중에 다시 찾아보자...) SQL을 매핑해주는 Framework ⇒ Mappers 설정 파일이 설정된 SQL 문을 자바에 연결 SQL만 작성하면 나머지 구현은 Mybatis가 알아서 해준다. (형식이 거의 동일하기 때문) Word Mapper에 대한 implement를 신경쓰지 않아도 된다.
REST (Representational State Transfer)
REST 네트워크의 자원을 URI(고유식별자) + Method를 사용하여 다루는 것 http에서 주로 사용되며, 자원에 대한 행위는 http Method를 통해 표현한다. Method 조회 - GET 수정 - PUT 삭제 - DELETE 등록 - POST
http와 JavaScript & Node.js
JavaScript - Front-End에서의 JS의 목적은 이벤트 처리 및 Back-End와의 비동기 통신이다. - JS는 객체 기반 언어이다. - JS는 동적 타이핑 언어이다. ⇒ 들어오는 값에 의해 Data type이 결정되는 언어 ex) var a = 10; - JS는 함수형 언어이다. ⇒ 함수도 객체 취급을 한다. JavaScript & Node.js (Java Script Runtime) 기본적으로 JavaScript는 Browser에 내장되어있는 JS engine을 통해 실행된다. 하지만 Node.js를 사용하면 브라우저 없이 Node.js만으로 JavaScript를 실행 하능하다. Node.js를 사용하여 Backend 개발 시 Front-End와 Back-End를 JS 하나의 언어로 개발이 가능해진다.