목록분류 전체보기 (446)
코딩항해기
구글 로그인을 구현해보자.먼저 구글 로그인은 최근 업데이트로 인해 기존 소스들을 사용하기 어려우므로 최신 방법을 잘 찾아야한다. 해당 글은 24년 9월 기준으로 작성됐다.이번 글에서는 구글 로그인을 통해 회원정보를 받아오는 방식에 대해 정리할 예정이다. 준비하기먼저 구글 OAuth 2.0 프로젝트를 만들어줘야한다.구글 클라우드 플랫폼에서 프로젝트를 생성할 수 있다.https://console.cloud.google.com Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 클라우드 플랫폼에 들어가서 로그인을 하면 상단에 프로젝트를 고를 수 있는 부분이 있다.이 부분을 클릭하면 프로젝트 리스트가 나오며 새 프로젝트를 만들 수 있다. 새 프로젝트 만들기를..
StringBuilderString은 불변(immutable)객체로 String은 한 번 생성되면 변경될 수 없다. 즉, 연결연산자를 사용해 문자열을 연결하면 연결 할 때마다 기존의 String 객체는 가비지 컬렉터로 들어가고, 새로운 String 객체가 생성된다. 이러한 행위는 메모리를 많이 소모하게 된다. 이러한 점을 해결하기 위한 것이 StringBuilder로, StringBuilder는 변경 가능한 문자열을 만든다. StringBuilder의 연결은 새로운 객체를 생성하는 것이 아닌 기존 데이터에 연결하는 방식으로 속도도 빠르고 부하도 적다.긴 문자열을 더하거나, 자주 더할 때 사용하면 용이하다. (비슷한 종류로는 StringBuffer가 있다.) StringBuilder와 StringBuffe..
JDBC에서 플레이스홀더(물음표 ?)에서 2번째에 해당하는 값이 누락됐을 때 뜨는 오류이다. 이 부분을 확인하면 되며, 보통 오탈자로 인해 발생한다.JDBC에서는 대부분의 오류가 SQLException으로 발생하기 때문에 내용을 더욱 자세히 살필 필요가 있는 것 같다.
멤버 테이블에 있는 닉네임에 unique 제약조건이 있을 때,A 닉네임을 가진 사람을 다시 A 닉네임으로 업데이트할 때 발생하는 오류이다. A 닉네임은 이미 해당 테이블에 있는 값이기 때문에 사용할 수 없다는 것이다.하지만 프로젝트 설계 상 개인정보를 업데이트할 때 업데이트가 한 번에 진행되기 때문에 동일한 값도 다시 업데이트되어야하는 상황이다. 이 때는 두 가지 방법이 있다. 1. Controller의 데이터를 전적으로 신뢰하는 방법Controller가 주는 데이터가 unique하다고 생각하는 것이다. 이미 사전에 검증을 거치고 DB에 데이터가 전달되는 경우에는 이 방법을 사용할 수 있고, 이 방법은 테이블의 unique 제약조건을 삭제하는 것이다.단점은, Controller에서 넘어오는 데이터가 un..
기존 방식에서는 검색 쿼리를 실행시키기 위해 C에서 컨디션값을 받아와 해당 고정된 쿼리를 불러와 값을 넣어 필요한 데이터를 반환했다. 이 방식의 단점은 단일 검색이 아니라 다양한 조건이 중첩되는 검색을 할 때 두드러진다. 예를 들어, 특정 카테고리, 특정 검색어, 기간 7일, 15일, 30일을 설정해 검색할 수 있는 기능이 있다고 가정한다.기존의 방식대로 했을 경우 검색어는 특별히 컨디션을 나누지 않는다고 하더라도, 카테고리 유무에 따라 2가지, 기간에 따라 (7일, 15일, 30일) 4가지를 곱해 모든 경우의 수인 8개의 컨디션 값이 나와야한다. 다른 검색 조건이 추가된다면 더욱 컨디션의 수가 늘어날 수 밖에 없는 구조이다. 특히 같은 쿼리문이 미세한 부분만 다르게 반복되므로, 효율이 떨어진다. 쿼리 ..
Q. 레지스터 문제 명령어 레지스터 IR : 현재 실행 중인 명령어를 기억하는 레지스터프로그램 카운터PC : 다음에 수행할 명령어의 번지(주소)를 보관MAR(Memory Address Register) 기억 번지 레지스터로서 기억 장소의 주소를 기억하는 레지스터MBR(Memory Buffer Register) 기억 버퍼 레지스터로서 기억 장치를 통해 접근되는 정보의 내용을 기억하는 레지스터누산기 (Accumulator) 산술 및 논리 연산의 결과를 일시적으로 기억인덱스 레지스터(Index Register) 인덱스 주소 지정 시 사용되는 레지스터메모리 레지스터(Memory Register) 한 비트를 저장할 수 있는 플립플롭의 모임으로 중앙 처리 장치내에 있는 임시 기억 장소 Q. 반가산기 문제 반가산..
SQLD 사전 점수 결과발표날! 다행히 합격했다. 문제 정리 올라온 걸로 가채점 했을 때 점수가 아슬아슬해서 걱정 많이했는데 다행히 합격했다.아직 공부해야할 부분이 많지만 오늘 하루는 행복할 것 같다! :D
프로그램 다운로드https://docs.github.com/ko/desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop GitHub Desktop 설치 - GitHub DocsGitHub Desktop은 지원되는 Windows 또는 macOS 운영 체제에 설치할 수 있습니다.docs.github.com GitHub Desktop 사용법설치 후 실행하면 로그인할 수 있는 화면이 뜬다. git hub 계정으로 로그인한다. 로그인 하고 나면 git hub 레포지토리가 뜨며 해당 레포지토리 파일을 복사해서 만들거나 이미 있는 local 깃 폴더를 추가할 수 있는 버튼이 뜬다. 기존 깃 폴더 연결을 하려면 Add ..
기존 계획(0829) 수정 계획 (0903) 개발 시간을 넉넉하게 짰더니 초기부터 계획보다 빠르게 진행되는 부분이 있다.개발 완료된 기간에는 공부 양을 늘리면서 다른 파트에 어려움이 있을 경우 해당 파트에 참여해 진행도를 더욱 올리고자 한다.최종 계획, 실제 진행된 기간 등을 지금과 비교해보면 다음 프로젝트에는 더욱 알맞은 계획을 짤 수 있을 것 같다.
02. 다음 회로의 X는 어떤 논리회로가 되는가?NAND게이트 NOT+AND 그리고 논리곱의 부정두 수 중 하나 이상 0이 입력될 때만 1이 출력된다 (AND 결과의 부정) 03. 다음 불 대수식을 간단히 하면?_XY+XY = Y(_X+X) = Y_X+X = 1, Y.1 = Y 04. 다음 진리표에 해당하는 게이트는?XOR게이트 (eXclusive OR) 둘 중 하나의 값이 1이 ㄹ때 (서로 다를 때) 출력값이 1이됨논리식 S = _A . B + A . _B = A0+B 07. 논리 게이트의 조합으로 구성되어 출력이 입력값에 의해 결정되는 조합 논리 회로가 아닌 것은?조합 논리 회로 : 입력값에 의해서 출력값이 결정되는 회로(반가산기, 전가산기, 디코더, 인코더, 멀티플렉서, 디멀티플렉서)순서 논리 회로..