공부/컴퓨터공학.기초
-
OAuth 란공부/컴퓨터공학.기초 2023. 11. 5. 01:53
OAuth라는 개념을 처음에는 소셜로그인과 연결해서 생각을 했었는데, 이번에 공부를 하면서 느낀점은 OAuth는 내가 알고 있던 지식과는 차이가 있었으며,OAuth라는 부분을 정리하려고 한다. 1. OAuth의 탄생 배경 서비스에 내 정보들(구글에 있는)을 동기화 하거나 가져오고 싶은 경우 (구글)ID/PW를 이용해서 서비스가 직접적으로 접근이 필요했다. ID/PW를 사용자(User)가 가지고 있다면 안전하지만, 서비스에게 ID/PW를 공개해야지만 원하는 정보들을 동기화 및 사용할 수 있었다. 그러면, ID/PW를 내가 이용하려는 서비스에게 전달하면 될까?? - 신뢰할 수 없는 서비스에게 내 ID/PW를 공개하는 건 불안한 요소이다. 그러면, 서비스는 억지로 ID/PW를 받아야하는가?? - 서비스도 유저..
-
Hash공부/컴퓨터공학.기초 2023. 9. 10. 23:15
Hash 란? - 해시 함수를 이용하여 하나의 문자열을 원래의 것을 상징하는 더 짧은 길이의 값이나 키로 변환하는 방식이다. - 짧은 해시 키를 사용하여 항목을 찾으면 원래의 값을 이용하여 찾는 것보다 더 빠르기 때문에, 데이터베이스 내의 항목들을 색인하고 검색하는 데 사용된다. - 동일한 문자열은 동일한 해시 알고리즘을 사용하면 반드시 동일한 해시값을 생성한다. - 서로 다른 문자열은 동일한 해시 알고리즘을 사용하면 서로 다른 해시값을 생성한다.(극히 드물지만 다른 문자로 했을 때 동일한 해시값을 가질 수 있다. = 해시 충돌) - 단방향 암호화이며, 복호화가 가능하지 않다. - 임의의 길이의 데이터를 고정된 길이의 데이터로 반환시켜주는 함수이다. 사용 용도 - 빠른 데이터 검색을 사용할 때 사용할 수..
-
Call by Value & Call by Reference공부/컴퓨터공학.기초 2023. 7. 17. 21:40
1차 면접 때 받은 질문이었는데, 제대로 못 듣기도 했고, 잘 모르는 부분이어서 모르겠다고 답했는데. 면접 끝나고 전에 물어보셨던 질문이 어떤 것이었냐고 물어봤어야 했는데, 물어보지 못했다. 결국, 2차 면접에서 동일한 질문을 또 받았는데, 그때 질문내용이 call by value, call by reference라는 것을 알았다. ( 물론..... 답변을 못했다....ㅜㅜ) 이번 기회에 블로그에 기록하며 머리속에 새겨 넣으려고 한다. Call By Value(콜 바이 밸류) 함수가 인수로 전달받은 값을 복사하여 처리하는 방식 값을 복사해서 사용만 하고, 직접접으로 값을 변경하지 않는다. let n = 3; function mulTwo(num){ num *=2; return num; } console.l..
-
프레임워크? 라이브러리?공부/컴퓨터공학.기초 2021. 12. 28. 00:08
🔔라이브러리(Library) 라이브러리는 단순 활용가능한 도구들의 집합을 의미한다. 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있다. 🔔프레임워크(Framework) 프레임워크는 뼈대나 기반구조를 의미한다. 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야한다. -> 하나의 어플리케이션을 구축할 때, 모든 애플리케이션의 공통적인 개발 환경을 제공해주는 것. 개발에 필요한 화면구현, DB연동, 개발환경들에 공통적인 부분을 제공함으로써 개발 시간과 리소스 비용을 절감해 생산성을 높여주는 것. 🔔프레임..
-
네트워크 - 웹 캐시공부/컴퓨터공학.기초 2021. 9. 14. 20:52
🔔 HTTP 헤더 - 캐시 캐시가 없을 때 동일한 이미를 요청하는데 네트워크를 통해 같은 데이터를 또 다운받아야 한다. 용량이 클 수록 비용이 커지고 브라우저의 로딩속도가 느려진다. 캐시가 있을 때 캐시 : 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다. 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우 사용 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근 가능 브라우저에 캐시를 저장할 때 헤더에 cache-control 속성을 통해 캐시가 유효한 시간을 지정 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 ..
-
네트워크 - HTTP 헤더공부/컴퓨터공학.기초 2021. 9. 14. 16:28
🔔 Representation Headers (표현 헤더) HTTP 메시지는 헤더와 바디로 구분 - HTTP 바디에서는 데이터 메시지 본문(Message body)을 통해서 표현(Representation) 데이터를 전달한다. - 데이터를 실어 나르는 부분을 페이로드(Payload)라 한다. 형식 HTTP/ 1.1 200 OK Content-Type : text/html;charset=UFT-8 Content-Length : 3423 ... 헤더 형식 : HTTP 전송에 필요한 모든 부가정보를 가지고 있다. - 메시지 바디 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버정보, 캐시 관리 정보 * Content-Type : 표현 데이터의 형식 ( 미디어 타입, 문자 인코딩 ) * Cont..
-
네트워크 - 인터넷 프로토콜공부/컴퓨터공학.기초 2021. 9. 14. 02:24
🔔 IP & IP Packet IP는 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터 전달 - 패킷(Packet): Pack + Bucket = 비유하자면 택배... - IP 패킷에는 출발지, 목적지 IP 와 같은 정보가 포함되어 있다. - 패킷 단위로 전송을 하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달 -서버에 데이터가 전달 되었다면 서버도 응답을 돌려준다. (= 서버 역시 IP 패킷을 이용해 클라이언트에게 전달) IP 프로토콜 한계 - 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 - 비신뢰성 : 중간에 패킷이 사라질 수 있음 / 패킷의 순서를 보장할 수 없음 - 비신뢰성과 비연결성으로 인해 클라이언트는 서버의 상태를 파..
-
가비지 컬렉션 , 캐시공부/컴퓨터공학.기초 2021. 9. 10. 15:22
🔔 가비지 컬렉션 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것( JAVA, C#, JavaScript 등이 가지고 있다.) 트레이싱 : 한 객체에 flag를 두고, 가비지 컬렉션 사이클 마다 flag에 표시 후 삭제하는 mark and sweep 방법 - 사이클마다 메모리 관리자가 모든 객체를 추적해서 사용여부를 표시(mark)한다. 표시되지 않은 객체는 삭제 레퍼런스 카운팅 : 한 객체를 참조하는 변수의 수를 추적하는 방법 - 객체를 참조하는 변수는 처음에는 특정 메모리에 대해 레퍼런스가 하나뿐 이지만, 변수의 레퍼런스가 복사될 때마다 레퍼런스 카운트가 증가. - 참조하는 변수 값이 바뀌거나, 변수 스코프를 벗어나면 레퍼런스 카운트는 줄어든다. - 레퍼런스 카운트가 0이 되면, 메..