모카스터디 29

연산자와 반복문과 조건문

오버 플로우와 언더플로우정수 타입 연산에서 오버/언더플로우가 발생되면 실행 에러가 발생하지 않고, 정수 타입의 최소/최대값으로 되돌아간다.byte value =127;value++; // value 값에 1을 더함 System.out.println(value); // -128최대값 +1 -> 최소값최소값 -1 -> 최대값  정확한 계산은 정수 연산으로public class AccuracyExample1 { public static void main(String[] args) { int apple = 1; double pieceUnit = 0.1; int number = 7; double result = apple - number*pieceUnit; System..

변수와 기본타입과 타입변환(캐스팅)

변수변수 : 하나의 값을 저장할 수 있는 메모리 공간에 붙여진 이름변수 선언 : 어떤 타입의 데이터를 저장할 것인지, 변수 이름이 무엇인지 결정하는 것. 지역변수는 사용되기 전에 반드시 초기화해야하며,필드(클래스 변수와 인스턴스 변수)는 초기화를 생략할 수 있다.  8개의 기본타입자바는 8개의 기본 타입이 있다.값의 분류기본 타입정수byte, char, short, int, long실수float, double논리boolean 정수타입 타입메모리크기저장되는 값의 허용 범위byte1byte-128 ~ 127short2byte-32,768 ~ 32,767char2byte0 ~ 65,535(유니코드)int4byte약 -21억 ~ 21억long8byte약 -9경 ~ 9경 진수 표현방식System.out.print..

자바의 특징 및 자바 프로그램 실행과정

자바 언어의 특징1. 운영체제에 독립적이다.자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고, JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제와 하드웨어가 이해할 수 있도록 변환하여 전달한다.자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이어서 썬에서는 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공하고 있다.2. 객체지향언어이다.자바는 프로그래밍의 대세로 자리 잡은 객체지향 프로그래밍언어(object-oriented programming language) 중의 하나로 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어라는 평가를 받고 있다.3. 자동 메모리 관리(Garbage Collection)자바로..

자바 문자열 및 배열

문자열 ASCII 코드 -> 소문자와 대문자 차이 32 65(A), 90(Z)97(a), 122(z)  문자열 대문자 변환  ( Upper Lower)String str = "hello";String upperStr = str.toUpperCase(); // "HELLO" 문자의 대문자 변환char ch = 'a';char upperCh = Character.toUpperCase(ch); // 'A'문자의 소/대문자 확인 char c = 'a';if (Character.isLowerCase(c)) { System.out.println(c + "는 소문자입니다.");} 문자열에서 문자 추출String str = "hello";char ch = str.charAt(0); // 'h' 문자열에서 특정 ..

페이지네이션[Pagination]

페이지네이션[Pagination] 이란 ?많은 데이터를 부분적으로 나눠서 불러오는 기술.  특징- 쿼리에 해당되는 모든 데이터를 한번에 다 불러오지 않고 부분적으로 나눠서 불러온다 예) 한번에 20개씩- 쿠팡 같은 앱의 경우 수억개의 상품이 데이터베이스에 저장되어 있는데 사용자가 상품 검색화면을 들어갈 때 마다 모든 상품을 서버에서 클라이언트로 전송할 필요가 없다. (데이터 전송시 많은 양의 금액이 발생+ 메모리 터짐+ 시간이 오래걸림) 페이지 기반 페이지 네이션(간단)- 페이지 기준으로 데이터를 잘라서 요청- 요청을 보낼 때 원하는 데이터 갯수와 몇번째 페이지를 가져올지 명시- 페이지 숫자를 누르면 다음 페이지로 넘어가는 형태의 UI에서 사용- 페이지네이션 도중 데이터베이스에서 데이터가 추가되거나 삭제..

리프레쉬 토큰을 왜 사용하는가 ?

https://softmoca.tistory.com/294 세션, 쿠키, JWT 토큰 및 인증과 인가 개념 정리로그인기능을 구현한는 것도 어렵지만 무엇보다 로그인 상태를 '유지'하는거도 만만치 않게 어려운 일이다. 예로 들어 naver에 로그인을 했을 때 메일함을 들어가고 나올때, 보낸 메일함과 받은softmoca.tistory.com전반적인 세션과 jwt토큰에 대한 인증 인가 개념은 위 포스트에 정리하였다. 리프레쉬 토큰을 왜 사용하는가 ?가장 보편적으로 리프레쉬 토큰이 사용되는 이유는 아래와 같다.서비스에서 특정 권한이 있는 사용자만 보낼수 있는 api가 있다.예를 들면 게시글 삭제 혹은 사용자 정보 수정, 관리자 페이지 접속 등등 프론트엔드에서 사용자가 로그인을 하면 백엔드에서 엑세스 토큰과 리프레..

세션, 쿠키, JWT 토큰 및 인증과 인가 개념 정리

로그인기능을 구현한는 것도 어렵지만 무엇보다 로그인 상태를 '유지'하는거도 만만치 않게 어려운 일이다.예로 들어 naver에 로그인을 했을 때 메일함을 들어가고 나올때, 보낸 메일함과 받은 메일함을 들어갔다 나올때 마다로그인을 다시 하면 사용자들은 상당히 불편할 것이다.그래서 서버에서 현재 사용자가 로그인을 했는지 안했는지를 알수 있어야 로그인 상태가 유지가 된다.인증(Authentication). : 로그인==> 내가 이 사이트에 가입된 회원임을 즉, 특정 서비스에 일정 권한이 주어진 사용자임을 아이디랑 비밀번호를 통해서 인증을 받는것 인가(Authorization)==> 한번 인증을 받은 사용자가 이후 서비스의 여러기능을 사용할 때 매번 로그인 되어있음을 알아보고 허가 해주는것.예) sns에 한번 로..

Node.js란 ?

Node.js란 ?Node.js is JavaScript runtime built on Chorme's V8 JavaScript engine.크롬의 V8자바스크립트 엔진이 내장된 자바스크립트 실행 환경. 즉, 자바스크립트를 사용할수 있는 실행 환경이다.  Node.js의 역사   1995Netscape 브라우저가 JavaScript를 소개했다. 2008Web 2.0 Google이 Chrome 브라우저를 발표했다.그리고 Chrome 브라우저는 JavaScript 엔진인 V8 엔진을 사용했다.새 브라우저 Chrome이 출시했을 때 V8엔진 덕분에 JavaScript가 정말 빠르고 성능 좋게 실행할 수 있었다. 2009Ryan Dahl이 Node.js를 만들었다. Node.js를 만드는 아이디어는 간단했다. ..

Closure

Closure 란? 다른 함수 내부에 정의된 함수(innerFunction)가 있는 경우 외부 함수(outerFunction)가 실행을 완료하고 해당 변수가 해당 함수 외부에서 더 이상 액세스할 수 없는 경우에도 해당 내부 함수는 외부 함수의 변수 및 범위에 액세스할 수 있다. function outerFunction(outerVariable) { return function innerFunction(innerVariable) { console.log('Outer function: ' + outerVariable); console.log('Inner function: ' + innerVariable); } } const newFunction = outerFunction('outside'); console..

프로토타입[Prototype] 과 클래스(Class)

프로토타입[Prototype] let user = { name: 'John', age: 45, email: 'john@example.com' } console.log(user.name); console.log(user.hasOwnProperty('email')); 위 코드에서 user라는 객체에는 hasOwnProperty라는 메서드가 없지만 사용이 가능하다. 그럼 hasOwnProperty는 어디서 온걸까 ? 위 사진과 같이 모든 객체는 global Object prototype을 가진다. 그렇다면 prototype은 무엇일까 ? 프로토타입은 자바스크립트 객체가 다른 객체로부터 메서드와 속성을 상속받는 메커니즘을 말한다. 이것을 프로토타입 체인(prototype chain)이라고도 말한다. 위에서 보듯..