반응형

전체 글

· DB&Server
📌 ORM ? 프로젝트를 하다보면 데이터 베이스가 사용해야할 때가 온다. 하지만 프로그래밍은 데이터를 활용할 때 주로 객체를 사용하고 관계형 데이터베이스는 테이블을 사용하기 때문에 서로의 모델이 불일치하기에 활용하기 어렵다. 예를들어 나는 한국어를 사용하는데 상대방이 불어를 사용하면 서로의 커뮤니케이션이 어려워지는 것과 마찬가지다. 이 둘 사이를 매끄럽게 연결되도록 도와주는 역할을 하는게 바로 ORM이다. 관계형 데이터베이스는 테이블 형태로 데이터를 저장하고 검색하는 방식을 사용하고 객체 지향 프로그래밍은 객체라는 개념을 사용하여 데이터와 해당 데이터를 조작하는 메서드를 포함한다. ORM은 이러한 두 가지 다른 패러다임 사이에서 데이터를 변환하고 매핑하여 개발자가 데이터베이스를 직접 다르지 않고 객체를 ..
· CS/cs
컴퓨터로 작업을 하다보면 파일 포맷을 먼저 확인하고, 그에 맞게 처리해야 할 때가 있다. 예를 들어, 이미지 포맷들 중 JPEG와 GIF를 구분하여 다르게 처리해야하는 경우, JPEG는 정적 단일 이미지로 렌더링 하고 GIF는 이미지 스트림을 지원하므로 소위 말하는 움짤로 구현해야 하는 경우가 있다. 그렇다면 파일 포맷이 JPEG 또는 GIF인지 어떻게 확인하면 좋을까? 가장 간단한 방법은 파일 이름의 확장자로 구분하는 것이다. 일반적인 경우 문제가 없지만 만약 사용자가 임의로 파일의 확장자를 변경하는 경우, 의도하지 않은 결과를 낳게 된다. 왜냐하면 확장자를 변경한다고 해서 파일 포맷이 변경되는 것은 아니기 때문이다. JPEG 포맷인 파일인 imge.jpeg를 확장자만 gif로 한 image.gif로 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📚 나의 풀이 1시간을 고민하였지만 풀지 못했다. 아래 풀이는 최대한 풀어본 풀이다 콜백 형식으로 하면 이 문제를 풀기 어렵다. 개구간 범위가 최대 1억이기 때문이다. 그래도 일단은 풀어보았다. 나의 풀이는 간단하다. 1. 요격 가능한 모든 x좌표를 구하고 각 x좌표마다 최대 몇발의 미사일을 요격할 수 있는지 객체를 통해서 파악한다. 2. 최대로 요격할 수 있는 첫 번째x좌표를 구한다. (Map 객체의 순서보장성을 활용했다) 3. targets.filter를 통해 2번에서 구한 x좌표가 범위에 있으면 해당 미..
· CS/CS50
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 5. 메모리 1) 메모리 주소 일단 메모리 주소를 알보기전에 메모리 부터 알아야 한다. 1️⃣ 메모리 메모리는 영어로 당연히 memory라 하고 이는 여러분이 잘 아시는 것 처럼 "기억", "기록"을 뜻하는 영어단어이다. 컴퓨터에서도 마찬가지로 메모리는 기억을 하는 장치로 사용된다. 메모리는 데이터의 저장과 처리를 담당하여 컴퓨터 시스템의 핵심적인 역할을 수행한다. 풀어 말하면, 메모리는 컴퓨터가 실행 중인 프로그램과 작업에 필요한 데이터를 일시적으로 저장하는 장치로 우리가 일상적으로 사용하는 모든 프로그램과 작업에 불가능한 빠른 속도와 신속한 데이터 액세스를 제공한다. 컴퓨터 메모리는 크게 주기억장치와 보..
· CS/CS50
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 📚 4. 알고리즘 1) 검색 알고리즘 1️⃣ 선형 검색 선형 검색은 가장 간단하고 직관적인 검색 알고리즘이다. 검색 방법은 배열의 인덱스를 처음부터 끝까지 하나씩 증가시키면서 방문하여 그 값이 속하는지를 검사하는 것이다. 선형 검색은 리스트를 처음부터 끝까지 순차적으로 탐색하기 때문에 최악의 경우 리스트의 길이에 비례하는 선형 시간 O(n)이 소요된다. (바로 다음에 배움) 즉, 리스트의 크기가 클수록 검색 시간이 증가한다. 따라서 선형 검색은 특정한 상황이나 작은 크기의 리스트에서 사용될 때 유용하다. 2️⃣ 이진 검색 이진 검색은 정렬된 배열 또는 리스트에서 특정한 값을 찾는 데 사용되는 검색 알고리즘이..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(survey, choices) { const scores = getScoresByPersonalityType(survey, choices); const resultOfPersonalityTypeTest = calculateScores(scores); return resultOfPersonalityTypeTest; } function getScoresByPersonalityType(survey, choices) { // 성격 유형별 점수 const scores = { ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 요약 하면 간단하다. 현재 보관되어있는 개인정보 수집 일자를 약관 종류에 따라 유효기간 만료일을 알아내서 오늘을 기준으로 만료일이 지났다면 폐기하면 된다. 바로 Date를 사용하면 조금 더 편리하겠다라고 생각해서 적용시켰다. 1. today를 new Date에 넣어준다. (구분자가 "-" 여야 ISO 8601 표준에 따라 날짜를 표기한다) today = new Date(today.replace(/[.]/g,"-")) 2. terms를 약관 종류에 따라 해당 유효기간을 알 수 있도록 객체로 변경하기 ..
· CS/CS50
📚 시리즈 목차 1. 컴퓨팅 사고 2. C언어 3. 배열 4. 알고리즘 5. 메모리 6. 자료구조 3. 배열 1) 컴파일링 저번시간에 컴파일에 대해 궁금해서 찾아보다가 소스코드가 머신코드가 되기까지 4단계가 있다는 걸 알고 정리했는데 오늘 수업내용에서 자세히 나왔다. 복습하면서 더 자세히 알아보자 이전시간에도 배웠듯이 우리는 clang이나 make를 통해서 컴파일링을 해왔다. 그렇다면 이 clang과 make가 도대체 뭘까? clang clang은 C, C++, Objective-C, Objective-C++ 등의 언어를 위한 컴파일러 도구이다. 높은 성능과 최신 언어 기능 지원, 진단 메시지의 품질 등으로 인해 많은 개발자들에게 선호되는 컴파일러이다. 컴파일 단계에서 소스 코드를 기계어로 변환하여 실행..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 틀린 풀이 처음 생각은 아 모든 numbers를 조합해서 배열로 만든 뒤 Math.max()로 가장 큰 수를 찾아야 겠다. 했는데 numbers의 길이가 100,000이라고 한다면 경우의 수는 100,000! 이고 1억 아니 1경 아니 1해 아니 1000해도 가뿐이 넘기는 숫자라서 계산이 불가능하다. 하지만 dfs도 복습할겸 해서 테스트 케이스만 통과하는 코드를 만들어 보았다. 그러나 생각보다 코드가 바로 생각나지 않았다. (복습이 필요할 것 같다) dfs를 돌리면 result 배열은 1번 예제에서..
개발자성장기
개발 공부 노트