본문 바로가기

분류 전체보기201

[연산자] 비트 논리/이동 연산자, 대입/삼항 연산자, 연산의 우선순위 3.8 비트 논리 연산자 비트 논리 연산은 소형 임베디드 장치의 C 프로그램에서 외부 서버의 자바 프로그램으로 데이터를 전달한다고 가정하자. C 언어에는 unit8_t 타입이 있는데, 이 타입은 1byte 크기를 가지면서 0~255 값의 범위를 가진다. C 프로그램이 unit8_t 타입 136을 2 진수로 보내면, 자바는 2진수를 -120으로 읽게 된다. 그 이유는 자바는 최상위 비트가 1이면 음수로 인식하기 때문이다. -120을 . C 프로그램이 보낸 136으로 복원하고 싶다면 자바에서 Byte.toUnsignedInt()코드를 사용한다. 비트 논리 연산자는 bit 단위로 논리 연산을 수행한다. 0과 1이 피연산자가 되므로 2진수 0과 1로 저장되는 정수 타입(byte, short, int, long).. 2023. 1. 14.
[연산자] 정확한 계산, NaN과 Infinity, 비교 연산자, 논리 연산자 3.4 정확한 계산은 정수 연산으로 산술 연산을 정확하게 계산하고 싶다면 실수 타입을 사용하지 않는 것이 좋다 public class Main { public static void main(String[] args) { int apple = 1; double pieceUnit = 0.1; int number = 7; double result = apple - number*pieceUnit; System.out.println("사과 1개에서 남은 양: " + result); } } //출력 : 사과 1개에서 남은 양 : 0.2999999999999999 출력된 결과를 보면 result 변수의 값은 정확히 0.3이 되지 않는다. 부동 소수점 방식을 사용하는 실수 타입에서 흔히 일어난다. 그렇기 때문에 정확한.. 2023. 1. 14.
[연산자] 부호/증감 연산자, 산술 연산자, 오버플로우, 언더플로우 3.1 부호/증감 연산자 부호 연산자는 변수의 부호를 유지하거나 변경한다. 연산식 설명 + 피연산자 피연산자의 부호 유지 - 피연산자 피연산자의 부호 변경 ※ 주의할 점은 부호 변경 후의 타입이다. byte b = 100; byte result = -b; //컴파일 에러 정수타입(byte, shor, int) 연산의 결과는 int 타입이다. 부호를 변경하는 것도 연산이므로 다음과 같이 int 타입 변수에 대입해야 한다. byte b = 100; int result = -b; 증감 연산자(++, --)는 변수의 값을 1 증가시키거나 1 감소시키는 연산자이다. 연산식 ++ 피연산자 피연산자의 값을 1 증가시킴 -- 피연산자 피연산자의 값을 1 감소시킴 피연산자 ++ 다른 연산을 수행한 후에 피연산자의 값을 .. 2023. 1. 14.
[변수] 변수란 (Variable)? 하나의 값과 타입을 저장할 수 있는 메모리의 공간. 수시로 값이 변동될 수 있다. 변수의 선언 프로그램은 변수 이름을 통해서 메모리 주소에 접근하고, 그곳에 값을 저장하거나 값을 읽는다. //1. 정수 값을 저장할 수 있는 age 변수 선언 int age; //2. 같은 타입의 변수는 콤마(,)를 이용해서 한꺼번에 선언할 수 있다. double x, y, z; 변수 명명 규칙 1. 첫 번째 글자는 문자이거나 '$','_'이어야 하고 숫자로 시작할 수 없다. (필수) 2. 영어 대소문자가 구분된다. (필수) 3. 자바 예약어는 사용할 수 없다. (필수) 4. 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다.(관례) 5. 한글은 포함하지 않는다.. 2023. 1. 13.
[lambda] sorted key Lambda 함수란? 람다 표현식을 익명함수(anonymous function)라고도 한다. 함수 def function(x): return x + 1 print(function(10)) 람다 함수의 장점? function = lambda x : (x+1) print(function(10)) 1. 코드가 간단해진다. 2. 메모리 효율적으로 사용할 수 있다. - 함수를 선언하면 함수 자체가 메모리에 할당되는데, 람다함수는 한 번만 사용하고 사라지기 때문이다. 알고리즘 문제에서 lambda의 활용 오름차순 정렬 : sorted(list명, key=lambda x: x[0]) 내림차순 정렬: sorted(list명, key=lambda x : -x[0]) 2023. 1. 13.
[branch 변경 에러] git push --set-upstream origin main [에러] fatal: The current branch main has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin main To have this happen automatically for branches without a tracking upstream, see 'push.autoSetupRemote' in 'git help config'. [해결] git push --set-upstream origin main [상황] 프로젝트 branch사용하다가 오랜만에 코테 공부한 거 git에 올리려는데 코테 branch랑 프로젝트 branch랑 다르.. 2023. 1. 9.
[server port] backend&frontend port 맞추기 axios 통신을 맞추기 위해 의 package.json에 "proxy":"http://localhost:8080"를 주어서 axios 통신할 때 js파일마다 localhost 주소를 써주지 않아도 되도록 만들었다. 또한, 백단과 통신을 맞추기 위해 에서 application.properties 들어가면 server.port=8080으로 맞췄다. 웹URL의 localhost를 맞추기 위해 의 package.json에 set port=80을 "scripts": { "start": "set port=80 && react-scripts start", ~~~} 에서 localhost:80으로 맞춰주면 된다. @Configuration public class WebConfig implements WebMvcCon.. 2022. 12. 21.
[Git] code: 'MODULE_NOT_FOUND', React를 Git에서 처음으로 클론할 때, !! node_module은 Git ignore에 들어가서 npm install 하면 Error가 뜬다! npm install --force 해주면 해결 완료~! 2022. 12. 21.
[Git] error: pathspec '' did not match any file(s) known to git 1. 대부분 branch에 업데이트가 되지 않아서 에러 발생 git remote update git fetch git checkout 브랜치이름 2. 이건 우리 팀원의 발생에러인데, fork 주소에서 clone하고 commit, push 후 branch 변경하여 에러 발생! fork에서 clone하면 안돼요~! ㅋㅋㅋ 2022. 12. 21.
[회원가입] 정규 표현식과 아이디 일치 불일치 React import axios from "axios"; import { useState, useEffect } from "react"; function Join() { //정규표현식 useState const [id, setId] = useState(''); //중복 id useState const [validId, setValidId] = useState(false); // ID의 정규식 표현:첫글자는 영문 대소문자이며, 나머지는 영문 대소문자, 숫자, 밑줄이 가능하고 //총 4~16글자이다. const ID_REG = /^[a-zA-Z][a-zA-Z0-9-_]{3,15}$/; // 정규표현식 일지하는지 검사 const setIdInfo = (e) => { let id = e.target.value.. 2022. 12. 14.
[login] access Token 과 refresh Token 차이점 JWT(JSON Web Token) 유저를 인증하고 식별하기 위한 토큰이다. 토큰은 세션과 달리 서버가 아닌 클라이언트에 저장된다. access Token & refresh Token 공통점 access Token과 refresh Token 은 JWT 형태로 같다. access Token의 특징 access Token은 refresh Token보다 유효기간이 짧다. WHY? 그 이유에는 refresh Token을 왜 사용하는지에 대한 답변이 된다. access Token은 그 자체로 인증 정보를 모두 가지고 있어 탈취당할 경우 정보 유출로 인해 보안에 취약하기 때문이다. 작자는 로그인 기능을 springBoot, react와 redux를 사용하여 구현하였고 access Token을 Redux Store에.. 2022. 12. 14.
Public key retrieval is not allowed 에러 해결 Mysql 8.0 버전부터는 보안 이슈로 useSSL 옵션에 대한 추가적인 설정이 필요해졌다고 합니다. 작자는 Mysql 8.0 을 사용하고 spring Boot의 application.properties에 useSSL=false 만 설정하였습니다. 에러 발생 원인 useSSL 만 설정하고 allowPublicKeyRetrieval 설정을 하지 않아서 에러가 발생했습니다. allowPublicKeyRetrieval=true Public key retrieval is not allowed 에러가 발생했을 때 확인해야할 것들! 1. useSSL : DB에 SSL로 연결 2. allowPublicKeyRetrieval : 서버에서 RSA 공개키를 검색하거나 가져와야 하는지 따라서 위 두개를 spring Boo.. 2022. 12. 12.