분류 전체보기 22

UUID란 무엇인가(부제: PK 정하기)

개인 사이드 프로젝트를 진행하기 위해 여러 가지 옵션을 고민하고 있다. 카카오 소셜 로그인으로 회원정보를 구현하려고 설계하는 과정에서, 처음에는 카카오 이메일로 PK를 설정하려고 했었다.그러나, 다른 분들이 "카카오 사이트가 없어질 가능성을 배제해서는 안 된다."라는 뉘앙스로 이야기를 해주셨고, 그러나 내 사이트가 없어질 확률보다 카카오 사이트가 없어질 확률이 더 낮음 PK를 AUTO_INCREMENT하는 방식과 UUID를 고민하게 되었다.   그래서 최종적으로 내린 결론은 UUID를 설정하는 것이었다.AUTO_INCREMENT하는 방식은 회원 정보라는 특성 상 보안에 신경써야 하기 때문에, 회원정보를 다루는 경우에는 부적절하다. 예측 가능하다는 특성 상 악의적인 사용자가 다음 값을 쉽게 추측할 수 있어..

CS 2024.11.17

예제를 통해 알아보는 정규식 작성 방법

최근 모 은행 코테에서 sql 문제로 정규식 문제를 내서 화제가 되었다. SELECT emailFROM your_table_nameWHERE email REGEXP '^[a-zA-Z0-9]+@[a-zA-Z]+\.com$'; 자소설닷컴 복기본이라 100% 정확한 것은 아니다.그리고 저거 못 맞춰도 다른 알고리즘에서 변별력을 준 것 같다. 저거 못 풀어도 면접 간다.근데 또 sqlp 있는 사람도 저건 예상 못했다고 하는데... 좀 심한거 아닌가 ㅜ  언제 저런 괴랄한 문제가 또 나올수 있지 않을까 싶어 정리한다.   정규식이란?프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어를 말한다. 정규 표현식이라고도 부르며, 보통 RegEx 혹은 RegExp라 많이 쓴다.   내가 쓴..

카테고리 없음 2024.11.06

null vs 0 vs undefined의 차이

1. Null명시적으로 비어있음 또는 값이 없음을 나타냄.즉, 어떤 변수가 null로 설정되었다면, 의도적으로 그 값이 비어 있음을 개발자가 나타낸 것typeof null은 'object'를 반환 (JavaScript의 오래된 버그)let obj = null;console.log(typeof obj); // 'object' 2. 0숫자 값 중 하나로, 숫자 데이터에서의 "없음" 또는 "비어 있음"이 아님.이는 단순히 숫자형의 값이며, 숫자형 연산에서 일반적으로 사용된다.falsy한 값이지만 유효한 숫자이다.let num = 0;console.log(typeof num); // 'number'console.log(Boolean(0)); // false3. undefined변수가 선언되었지만, 값이 할당되지..

카테고리 없음 2024.11.03

[CSS] white-space 속성 변경을 통해 줄바꿈 설정 그대로 유지하기

현재 공모전 작업을 위해 챗봇 프론트를 작업하고 있다.기존의 설정에서는 위와 같이 입력하면,  줄바꿈이 제대로 처리되지 않는다.이때의 css 코드를 한번 살펴보자. .message { display: inline-block; font-family: "Pretendard", sans-serif; margin: 8px 0; padding: 12px 16px; border-radius: 20px; max-width: 80%; word-wrap: break-word; font-size: 14px; line-height: 1.4; text-align: left; width: fit-content;}   이제 속성에 white-space: pre-wrap;  을 추가한다.그러면 기존에 반영되지 ..

Frontend 2024.10.26

React 프로젝트에 PWA 적용하기

AI 관련 공모전에 나가기 위해, 관련한 서비스를 제작하게 되었습니다.백엔드는 Flask로 진행하고, 데이터 팀원들이 데이터 작업을 진행할 동안 개발 파트를 맡은 나는 프론트엔드 작업을 만들어서 진행해야 하는 상황입니다.모바일 앱으로 하면 좋겠지만, 모바일 앱 개발 경험도 없고, 정말 짧은 시간을 준비해야 되는 상황이라 그나마 기존에 조금이라도 써봤던 리액트로 작업을 하게 되었습니다.  PWA란PWA(Progressive Web App)는 웹 기술을 활용해 모바일 앱과 유사한 사용자 경험을 제공하는 웹 애플리케이션입니다. PWA는 네이티브 앱의 장점인 빠른 속도와 오프라인 사용 기능을 웹 환경에서 구현할 수 있도록 하며, 특히 브라우저를 통해 설치 없이 사용 가능합니다. 이를 통해 앱스토어를 거치지 않고..

Frontend 2024.10.20

BlockingQueue<E> vs ConcurrentHashMap<K, V>

부제: BlockingQueue를 설명하려다 생산자-소비자 패턴만 설명하게 된 상황에 대하여.... 저번 글에 작성한 ConcurrentHashMap과 동일하게 thread-safe한 자료구조이다. 그러나 사용 용례가 다른 면이 있기에, 이 둘의 공통점과 차이점, 특히 차이점을 중심으로 글을 작성해보려고 한다. https://manjyuv.tistory.com/16" data-og-description="ConcurrentHashMap해시맵(Map)의 동시성 버전으로, 다수의 스레드가 동시에 데이터를 삽입, 수정, 삭제할 수 있도록 안전한 구조를 제공합니다.Hashtable과 비슷하지만 HashMap과 달리 이 클래스는 null" data-og-host="manjyuv.tistory.com" data-o..

Language/Java 2024.10.13

ConcurrentHashMap<K, V>

ConcurrentHashMap해시맵(Map)의 동시성 버전으로, 다수의 스레드가 동시에 데이터를 삽입, 수정, 삭제할 수 있도록 안전한 구조를 제공합니다.Hashtable과 비슷하지만 HashMap과 달리 이 클래스는 null을 키나 값으로 사용하는 것을 허용하지 않습니다.Like Hashtable but unlike HashMap, this class does not allow null to be used as a key or value.  Java 1.5에서 도입되었으며, Java 8에서는 ConcurrentHashMap에 대한 동시성 API가 개선되었으며, HashMap과 달리 ConcurrentHashMap은 멀티스레드 환경에서 안전하게 사용할 수 있습니다.public class Concurre..

Language/Java 2024.10.03

String과 Char

파이썬으로 코테를 풀던 시절에는 문자, 문자열에 대해 신경을 쓸 필요가 전혀 없었다.그냥 '가 쓰고 싶으면 '를 쓰고, "가 쓰고 싶으면 "를 쓰면 됐다..그러나 자바로 코테를 풀기로 시작하고 나니, 이런 거에 신경을 써야 한다...  자바는 String과 Char 타입을 "와 '로 구분한다는 것을 이번에 처음 알았다...    Char(문자)란?한 개의 문자 값에 대한 자료형을 의미한다.유니코드 문자 하나를 표현한다. 자바는 UTF-16 인코딩을 사용하므로, 0에서 66,535 사이의 정수값으로 표현된다.원시형 데이터 타입이다(primitive type)값을 직접 변경할 수 있다.기본 타입이므로 메모리 상에서 스택(stack)에 저장된다.이로 인해 접근 속도가 빠르다.크기가 2바이트(16비트)이며, 유..

Language/Java 2024.09.14

Integer.parseInt()란 무엇인가?

백준에서 자바로 문제를 풀 때 가장 많이 쓰는 것 중 하나가 아닐까 싶다.import java.util.*;import java.io.*;BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringBuilder sb = new StringBuilder();int t = Integer.parseInt(br.readLine());기본적으로 위의 저 5줄은 박고 시작하는 편이다. br.readLine()으로 입력을 받고 나서, 그 입력받은 String을 Integer로 변환해주는 수단임은 쉽게 유추할 수 있다. 그럼 이것은 어떻게 작동할까?인텔리제이를 이용해서 내부 구조를 하나씩 까본다.   public static int..

Language/Java 2024.09.08

Pypy3과 Python3의 성능 차이

백준으로 파이썬 알고리즘을 푸는데, 같은 코드인데 Python3으로 풀었을 때는 시간초과가 났으나, Pypy3으로 풀고 나니 시간 초과가 나지 않았다.처음에는 미처 문제에 있는 설명을 보지 못하고 Python3으로 제출했는데, 맨 아래 제출내역을 보다보면 알다시피 3%에서 시간초과가 나왔다.  https://www.acmicpc.net/problem/20920(해시를 연습하기 좋은 문제)   문제 밑의 설명을 보니 파이썬의 경우에는 Pypy를 권장하고 있었다. Pypy란 무엇인가?Python3 실행 시 시간이 매우 오래 걸린다는 단점이 있어서, 그것을 개선하고자 JIT 컴파일 방식을 도입한 것이다. swea의 21295. 거듭제곱 분할 문제의 상단에 있는 설명인데, swea의 경우 언어별 제한시간을 명시..

Language/Python 2024.08.29