본문 바로가기

전체 글

(556)
자바스크립트, node.js * 자바스크립트(웹브라우저에서 Client 로 구동)싱글 스레드(이벤트 핸들러가 동시에 여러개 실행되지 않음)동시성 없음별도의 스레드 처리(Worker)비동기 fetch(), async await, for/await   * 노드(OS 에서 Server 로 구동)싱글 스레드(노드 10부터 Worker 지원)동시성 구현(콜백과 이벤트를 기반)멀티 스레드 처리(메모리 공유 대신 메시지 전송)비동기 비차단 API운영 체제 파일 I/O(fs, path), Network I/O(http, https, net), 자식 프로세스(child_process) 모듈효율적이고 병렬화 된 웹 서버 환경(최대한 많은 요청을 동시에 처리)I/O 집약적인 프로그램에 맞게 설계, 최적화이벤트 기반 병렬 환경
자바스크립트, document css selector const sel = document.querySelector('.....'); // null or Element. 하나만 찾을 때// document.getElementById('.....') 참조 (요즘엔 지양) const sels = document.querySelectorAll('.....'); // NodeList (Not Element). 여러개 찾을 때// document.getElementsByName('.....') 참조 (요즘엔 지양)// document.getElementsByTagName('.....') 참조 (요즘엔 지양) // document.getElementsByClassName('.....') 참조 (요즘엔 지양)  * CSS selector# 은 id 속성의 값. 하나만 ..
자바스크립트, 진행 중 이벤트 시간을 많이 잡아 먹는 비동기 동작시 적용. document.addEventListener('ing', (e) => {  if (e.show) {    ..... // 진행 중 팝업 열기  } else {    ..... // 진행 중 팝업 닫기  }}); document.dispatchEvent(new CustomEvent('ing', {show: true})); // true 시작, false 종료
자바스크립트, # class ClassA {  #field1 = ...; // 비공개 필드. 인스턴스의 속성.  get field1() { return this.#field1; } // getter 함수를 통해 비공개 필드에 접근}const a = new ClassA();a.field1; // 접근 불가하므로 에러a.field1(); // 접근 가능
자바스크립트, ()() (()) 객체 안에 정의된 함수는 메서드,함수(결국 객체) 안에 정의된 함수는 클로저..클로저 사용시 클로저가 포함된 함수에서 정의한 내부 변수가 사용,다만 내부에서 정의된 함수가 new Function() 인 경우 외부 변수가 사용. const baz = 'Global const'; // let 이라도 동일 적용function foo() {     const baz = 'Local const';     function f() { return baz; }     return f(); } console.log('foo: ', foo()); // foo() 를 실행, foo 의 body 에서 return f()// f() 는 return baz// 결국 foo() 실행시, foo 의 body 에 기술된 f() 메소드..
자바스크립트, ... 1. 분해 연산자배열이나 문자열 등의 Itarable 객체를 분해 const x = ['b', 'c'];const y = ['a', ...x, 'd', 'e']; // ['a', 'b', 'c', 'd', 'e']. 배열 x 의 요소들을 분해해서 배열 y 에 포함const z = [...'Hi, there']; // ['H', 'i', ' ', 't', 'h', 'e', 'r', 'e']. 문자열을 문자 배열로 분해. 문자열도 개념상 문자의 배열const a = [1, 2];const b = [0, ...a, 3]; // [0, 1, 2, 3]. 숫자 배열에도 동일하게 적용 배열이나 객체에 '분해 할당' 적용 const [a, b] = ['a', 'b']; // a 는 'a', b 는 'b' const ..
Spring import 패키지 (Annotation) org.springframework.stereotype._____@Controller@Service   org.springframework.web.bind.annotation._____@RestController@RequestMapping,@GetMapping@PostMapping,@PutMapping@PatchMapping@DeleteMapping@PathVariable@RequestBody@ResponseBody   org.springframework.ui._____ Model   org.springframework.beans.factory.annotation._____@Autowired   org.springframework.data.jpa.repository._____Repository ← Cru..
스프링 Controller 에 딸린 메서드의 파라미터와 리턴값 1. 파라미터 컨트롤러 클래스에서 메소드에 파라미터를 사용할 때에는.. form 문에 담긴 컨트롤 값으로 넘어오는 것이면, 해당 클래스를 그대로 기술하면 되지만.. @...Mapping("/...") public foo(ClassA classA) { ... } request url 의 path 에도 파라미터가 넘어온다면, @PathVariable 사용 @...Mapping("/.../{param}") // url 의 path 부분에 변수가 들어오기 때문에 PathVariablepublic bar(@PathVariable ClassB param, ...) { ... } JSON 데이타가 (url 호출시 body에) 파라미터로 넘어온다면, @RequestBody 사용 @...Mapping("/.../{par..