[Tistory] 기술 면접 질의 응답 1~13 및 추가 질문 1~4

1. float 와 int 의 표현 가능한 수의 범위가 다른 이유는 무엇인가? – 답 수를 표현하는 방식이 다르기 때문입니다. int형의 경우, 부호 표현 및 이진수로 표현된 수를 나타내는 4바이트의 값을 가집니다 float형의 경우, 같은 4바이트지만, 부호를 표현하는 sign bit, 자릿수를 표현하는 exponent bit, 값을 표현하는 mantissa bit 로 구분되어 표현됩니다. 참고 ) https://indrawer.tistory.com/48 float형과 int형, 뭐가 다를까? 코딩을 하다 보면 int형을 많이 사용하다가 소수점 연산에 있어서 float이나 double형을 사용하는 경우가 있다. int형의 경우 소수점 연산을 하면 값에 오차가 커지기 때문에 float형을 사용한다……

[Tistory] 공부내용 정리 (서버, 로직, 서블릿)

서버란 : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 : 인터넷 네트워크 환경에서 다른 컴퓨터에게 다양한 기능, 데이터, 서비스를 제공하는 컴퓨터나 소프트웨어 전반 웹 서버 -> 웹 사이트 서비스를 제공하기 위한 서버 도메인 서버 -> 도메인 관리를 위한 서버 was web application server : 웹 서버와 웹 컨테이너 : web서버처럼 http 프로토콜을 기반으로 동작하고 웹 서버 기능을 포함하여 동적 리소스도 제공할 수 있는 애플리케이션 서버 WAS는 웹서버의 기능을 포함하고 있기 때문에 WAS와 DB만으로도 웹 서비스 구성 가능 그러나 문제도 발생 가능 -> WAS가 너무 많은 영역을 담당하고 있기 떄문에 서버 과부하 위험이 있을 수 있고 정적 리소스 때문에..

[Tistory] [GitHub] branch 생성 후 폴더 올리기

git clone 저장소 주소 cd 폴더 올리려는 폴더 주소 git checkout -b 새로 생성한 브랜치이름 git branch –set-upstream-to origin/main git fetch 저장소 주소 (파일 올리고 나서) git add 파일 이름 git commit -m “커밋 메시지” git push origin 브랜치이름 후에 저장소 가서 PR 참고: https://jalynne-kim.medium.com/%EA%B9%83-%ED%9D%90%EB%A6%84-%EA%B9%83%ED%97%88%EB%B8%8C-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%A7%8C%EB%93%A4%EA%B3%A0-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%95%98%EA%B8%B..

[Tistory] useEffect dependency에 useRef를 담기보단 Callback Refs를…

React base의 프로젝트에서 작업 중 DOM 노드의 크기에 따라 state 값이 바뀌는 로직을 짜야 되는 경우가 종종 발생합니다. 그럴 때 “useEffect의 dependency에 useRef의 current를 맵핑하는 것이 맞나?”라는 생각을 하게 됩니다. useRef에선 리렌더링이 일어나기 전까진 값의 변화 추적이 안되기 때문에 문제가 발생할 수 있습니다. 해당 케이스에선 어떻게 처리할지 알아보겠습니다. useEffect dependency로 ref 연결 케이스 확인을 위한 예시코드를 작성해보겠습니다. import { useEffect, useRef, useState } from ‘react’; … function Component() { const [isBasicState, setIsBa..

[Tistory] [코딩테스트] 코딩테스트 빈출 유형 정리

1. 회전 1-1. zip() 정사각형, 직사각형 모두 동일하게 적용 arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] # 시계 90 (= 반시계 270) arr_90 = list(map(list, zip(*arr[::-1]))) print(arr_90) # 시계 180 arr_180 = [a[::-1] for a in arr[::-1]] # 시계 270 (= 반시계 90) arr_270 = [x[::-1] for x in list(map(list, zip(*arr[::-1])))[::-1]] 1-2. 인덱스 규칙 찾아서 회전 정사각형 arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] n = 3 # 시계 방향 90 (= 반시계 방향 270)..

[Tistory] Centos 7 nginx https 설정

Centos 7 환경에서 nginx 로 https 로 리다이렉트 할 수 있도록 설정해주고 싶었다.ssl 구입하는데 기본 몇만원이라는 가격뿐만 아니라 간단하게 연습용으로 할 수 있는 방법을 원했다.certbot 이라는 ssl 연습 툴이 있길래 그 부분을 사용해서 ssl을 적용해보았다. 여기에서 많은 참고를 했다. https://bitgadak.tistory.com/6 certbot 으로 let’s encrypt 인증서 발급받기certbot 을 통해 let’s encrypt 인증서를 발급받아보자. 현재로서는 가장 간단한 방법인 것 같다. 공식 사이트 가이드를 따라 진행한다. 아래 페이지를 참고했다. certbot 가이드: https://certbot.eff.org/instrucbitgadak.tistory…

[Tistory] [JavaScript] 자바스크립트 동기와 비동기 / 동기와 비동기 원리

목차 동기와 비동기 싱글 스레드 언어 자바스크립트 엔진이란? 비동기 실행과정 https://devyihyun.tistory.com/148 [동기와 비동기] 쿠팡의 과일 구매 목록이다. 웹페이지에 과일 목록이 보이기까지 1분이 걸린다고 하자 동기적으로 실행했다면 목록이 보이기까지 1분 동안 화면 스크롤, 버튼 클릭 등 아무것도 할 수 없다. 현재 실행하고 있는 함수가 있기 때문에 다른 일을 할 수 없어 다른 일들이 블록 된다. 즉, 브라우저에서 오래 걸리는 작업이 실행될 경우, 웹페이지의 UI는 멈춰버리고 사용자는 어떤 작업도 할 수 없다. 그렇기 때문에 비동기식으로 과일 목록을 불러와야 한다. 동기와 비동기, 동기는 하나씩 실행되고 비동기는 동시에 실행된다고 흔히들 알고 있다. 하지만 그렇지 않다. 비동..

[Tistory] [GitHub] LeetHub를 이용한 LeetCode 연동 폴더 설정

🍀 목차LeetHub 설치문제연동 폴더 설정결과 확인   LeetHub 설치 LeetHub는 해외 알고리즘 사이트인 LeetCode에서 해결한 문제를 자동으로 GitHub Repository에 commit & push 해주크롬 확장 프로그램이다.      Chrome 웹 스토어에서 LeetHub를 검색한 후, 리스트에서 골라 설치해 주면 된다. v2는 추천항목, v3는 가장 최신에 등록된 플러그인이었는데, v3는 v2를 fork 하여 업데이트한 버전이라 되어있어 v3를 설치해 주었다.  문제    확장 프로그램을 활성화 시킨 후, GitHub 인증을 거치면 존재하거나 새로 만들 Repository name을 입력해 연동시킬 수 있다.  그런데 나의 경우 알고리즘 문제 풀이를 TIL>Problem-Sol..

[Tistory] [프로젝트/캡스톤] 메이저인 AWS EC2, RDS 연결 – 배포

** 도움받은 글들https://everydayyy.tistory.com/66 [AWS] EC2로 Django 서버 배포해보기EC2는 Elastic Compute Cloud라고 해서 AWS에서 제공하는 독립적인 컴퓨터 서버이다. AWS가 제공하는 클라우드상에 나만의 서버를 하나 만듦으로써 서버구축에 필수적인 금액적인 요소나 보수, 관리 등everydayyy.tistory.com https://nerogarret.tistory.com/47 Django 서비스 AWS로 배포하기 – [3] uWSGI 연결하기Django 서비스 AWS로 배포하기 – [1] 프로젝트 준비와 AWS 서버 대여 Django 서비스 AWS로 배포하기 – [2] github과 프로젝트 업로드 지난 포스트 까지 서버에 나의 프로젝트를 g..

[Tistory] [Java] Synchronized 동기화란

스레드 동기화란?하나의 프로세스는 스레드와 데이터, 그리고 자원으로 구성됩니다. 하나의 프로세스내의 스레드들은 각자의 PC와 register를 지니고 있지만, 자원과 데이터는 공유하여 사용합니다.싱글스레드 환경에서는 공유 데이터에 대해 하나의 스레드만 접근하여 사용하므로 동기화에 대해 문제가 발생하지 않습니다. 그러나 멀티스레드 환경에서 둘 이상의 스레드가 공유 데이터에 동시에 접근하게 되면 문제가 발생할 수도 있습니다.이러한 문제를 막기 위해 스레드 동기화를 해야 합니다.동기화를 하지 않는다면 ?동기화를 하지 않는 경우를 먼저 그림을 통해 생각해보도록 하겠습니다.다음은 예금 인출 방법입니다.  가장 이상적인 예시로는 여러번의 요청이 와도 차례대로 처리가 되어 잔액이 마이너스가 되거나, 중간에 요청이 겹..