분류 전체보기

    개발자 기술면접 준비

    Process와 Thread의 차이 프로세스 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 스레드 : 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이다. 스레드는 할당받은 자원을 이용하는 실행의 단위이고, 프로세스 내에 여러개 생길 수 있다. 애플리케이션 하나가 프로세스이고, 그 안에서의 분기 처리가 스레드가 되는 셈이다. 비동기 프로그래밍 왜 해야 하는가? JavaScript는 싱글 스레드 언어이기 때문에 한 번에 한 가지 작업밖에 수행하지 못한다. 그래서 자바스크립트로 코드를 구동하면 무언가 순차적으로 일어나게 된다. 이러한 특성으로 싱글 스레드 언어는 치명적인 단점을 갖게 된다. 무거운 작업을 수행 중일 때 그 뒤의 어떤 작업도 진행되지 않..

    Overloading과 Overriding의 차이

    Overloading (오버로딩) 오버로딩이란 하나의 클래스 안에서 같은 이름의 메소드를 여러개 정의(중복 정의)하는 것을 뜻한다. 일반적으로 하나의 클래스 안에 같은 이름의 메소드를 정의하게 되면 에러가 발생하지만, 오버로딩의 조건을 만족했다면 같은 이름의 메소드를 여러 개 정의할 수 있다. Overloading 조건 매개변수의 개수가 달라야 한다. 매개변수의 타입이 달라야 한다. // 오버로딩 조건 : 매개변수의 개수가 다른 경우 public int overloadTest(){ return 0; } public int overloadTest(String test){ return 1; } // 오버로딩 조건 : 매개변수의 타입이 다른 경우 public int overloadTest(String test..

    GET과 POST의 차이 (+ HTTP)

    안녕하세요 코북입니다. Get과 Post에 대해 알기 전에 HTTP에 대해 간단하게 정리하겠습니다. HTTP HyperText Transfer Protocol의 줄임말로 www상에서 사용하는 프로토콜이다. 서버와 클라이언트 사이에 응답을 주고받는 프로토콜로 우리가 흔히 웹브라우저 주소창에 입력하는 웹 주소인 URL을 통해 요청과 응답이 이루어진다. 실제 전송은 TCP를 통해 이루어지며 포트는 80번을 사용한다. HyperText 참조(하이퍼링크)를 통해 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트를 의미한다. www (World Wide Web) 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 가상의 공간이다. HTTP 메소드 HTTP 메소드는 클라이언트가 서버에 요청의 목적 및 ..

    Cookie와 Session의 차이

    Cookie와 Session의 차이 쿠키와 세션을 사용하는 이유? HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용한다. Cookie HTTP의 일종으로 사용자가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다. HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다. Session 일정 시간 동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술이다. 여기서 일정 시간은 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점부터 웹 브라우저를 종료하여 연결을 끝내는 시점을 말한다. 즉, 방문자가 웹서버에 접속해 있는 상태를..

    개발자 면접 질문(자바, 스프링)

    OOP란 ? 데이터를 객체로 취급하여 프로그램에 반영한 것이며, 순차적으로 프로그램이 동작하는 기존의 것들과는 다르게 객체의 상호작용을 통해 프로그램이 동작하는 것을 말합니다. 캡슐화, 다형성, 상속 을 이용하여 코드 재사용을 증가시키고, 유지보수를 감소시키는 장점을 얻기 위해서 객체들을 연결 시켜 프로그래밍 하는 것 입니다. 자바의 메모리 영역(간단하게 설명) 1. 메서드 영역 : static 변수, 전역변수, 코드에서 사용되는 Class 정보 등이 올라간다.코드에서 사용되는 class들을 로더로 읽어 클래스별로 런타임 필드데이터, 메서드 데이터 등을 분류해 저장한다. 2. 스택(Stack) : 지역변수, 함수(메서드) 등이 할당되는 LIFO(Last In First Out) 방식의 메모리 3. 힙(H..

    [error/javascript] 'Uncaught TypeError: 함수명 is not a function at HTMLButtonElement.onclick'

    사용한 함수가 제대로 정의 되지 않아 오류가 발생했습니다. 함수 명을 변경하여 오류를 수정했습니다. 참고 https://okky.kr/article/601317

    [Spring/Ajax] Chart.js로 차트 만들기 2

    안녕하세요 코북입니다. 지난번 https://cobook.tistory.com/36 에서 Chart.js를 이용해 차트 만들기를 해봤었습니다. 그때는 DB에 넣은 값을 단순하게 보여주는 것이 끝이었다면 오늘은 DB에 있는 값들을 연산하여 차트로 만들어봤습니다. 작업 진행 순서는 다음과 같습니다. VO Mapper.xml Mapper Interface Controller JavaScript 1. VO 사용할 변수에 맞춰 VO를 작성해줍니다. package city.turtle.vo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstr..

    [Spring] @Param 어노테이션으로 mapping하기

    안녕하세요 코북입니다. 차트 만드는데 계속 이런 오류가 발생했습니다. '이용 가능한 변수들이 4개가 있는데 그중에서 "mb_id"라는 변수를 찾을 수 없다.'라는 내용입니다. Mapper Interface에서 실행한 메소드가 xml에서 변수들을 찾아가지 못해서 발생한 오류인데요. @Param 어노테이션을 사용하여 mapping 할 변수의 이름을 명시해 주었더니 오류가 해결됐습니다. mapping이란 하나의 값을 다른 값으로 대응시키는 것을 말합니다. ■ Mapper Interface public int countSum(GraphVO vo, int num1) throws Exception; ■ Mapper.xml select sum(pos_count) as pos_sum from POSTURE where ..

    [Spring] 회원 정보 수정하기

    안녕하세요 코북입니다. 오늘은 회원 정보 수정 기능을 구현했습니다. 앞에서 회원가입과 로그인을 구현했다면 회원 정보 수정은 쉽게 구현할 수 있습니다. 작업순서는 다음과 같습니다. MyBatis XML Mapper Mapper Interface Controller JSP 1. MyBatis XML Mapper 먼저 회원정보를 수정할 수 있는 sql 쿼리를 만들어줍니다. update set 명령어를 사용했고 id값을 조건으로 합니다. update MEMBERS set mb_nick=#{mb_nick}, mb_pwd =#{mb_pwd}, mb_name=#{mb_name}, mb_birth=concat(#{mb_yy}, #{mb_mm}, #{mb_dd}), mb_gender=#{mb_gender}, mb_ema..

    [JavaScript] 로그인 했을 때만 사용 가능한 페이지

    안녕하세요 코북입니다. 오늘은 로그인했을 때만 서비스 페이지를 이용할 수 있게 하기 위한 작업을 해줬습니다. jsp와 javascript를 이용해서 간단하게 만들 수 있었습니다. ■ jsp 서비스 이벤트 공지 서비스 페이지는 클릭 시 페이지를 이동시키는 것이 아니라 onclick으로 함수가 실행될 수 있도록 설정했습니다. ■ JavaScript signIn 변수에 로그인 시 session으로 넘어오는 값을 담아줬습니다. 값이 넘어오지 않으면(공백일 경우) 알림 창과 함께 로그인 페이지로 이동시키고, 값이 넘어오면 서비스 페이지로 이동시킵니다. 구현 화면 잘 구현됩니다. 사용 기술 JavaScript, EL 배운 점 ${signIn}으로 넘어오는 값에 따옴표("")를 해주지 않으면 값을 signIn이라는 ..