썸네일 [데이터베이스 첫걸음] 6장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 6장 SQL문의 기본 SELECT문의 기본 SQL은 주로 DBMS에 저장된 테이블을 조작하기 위해 사용 데이터베이스가 여러개 존재할 수 있기 때문에 테이블을 보기 위해서는 데이터베이스를 선택해야 함 데이터베이스 목록 보기 mysql> show databases; 데이터베이스 사용하기 mysql> use 데이터베이스명; 테이블 목록 보기 mysql> show tables; WHERE 테이블에서 열의 수는 테이블을 작성(정의)했을때 결정되어 이후 명시적으로 변경하지 않는 한 늘어나지 X. but 행수는 제한이 X. → SELECT문 줄이고..
썸네일 [데이터베이스 첫걸음] 5장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 5장 DBMS를 조작할 때 필요한 기본 지식 MySQL 설치 생략 MySQL 과 커넥션, 그리고 전화걸기 커넥션(Connection) 로그인을 통해 프롬프트가 표시된 것 → 사용자와 MySQL이 접속되었다. (연결되었다.) 커넥션과 전화 커넥션은 로그인에 실패하면 전화의 잘못된 번호 와 같은 안내를 받는다. 전화와는 달리 1대1이 아닌 복수의 사용자가 동시에 커넥션 할 수 있다. 전화를 끊는 것은 로그오프 세션(Session) 커넥션의 시작과 종료 사이에 DBMS와 다양한 교환을 진행하는데, 그 교환의 시작과 종료까지의 단위 기본적으로..
썸네일 [Spring] 소셜 로그인 2편: 로그인과 로그아웃 * 수정중인 글입니다. JWT를 통해 카카오 로그인을 구현해야 하는 상황이었다. 삽질 과정 아래는 노션에 작성해둔 백로그 내용중 일부이다. JWT에 대한 개념 이해 -> 자체 로그인 구현 -> 소셜 로그인 구현 의 과정으로 하나씩 진행해보았고, 어떻게든 짜긴 했으나 여전히 spring security와 소셜 로그인 구현 과정에서의 여러 어려운 부분들을 많이 느껴 좋은 코드는 확실히 아니라는 느낌이 든다. 특히 많은 블로그들의 글을 참조하여 구현하다 보니 코드가 엄청 헤진 느낌이다. 더 많은 공부를 하고 추후 리팩토링을 진행해보고 싶다. JWT 인증 로그인 Flow [프론트] [카카오 API server]에 인가코드 요청 [카카오 API server] 인가코드 발급 후 프론트로 return [프론트] 인가..
썸네일 [Design] 티스토리 썸네일 사이즈 psd 공유 책 이미지(북커버)를 업로드하기 좋은 썸네일 이미지 psd입니다. 포토샵에서 사용하실 수 있습니다. 내부 레이어에서 새로운 이미지를 적용하시면 됩니다. 아래 드라이브에서 다운받으실 수 있습니다. (big이 아닌 파일은 작은 이미지로 티스토리 썸네일 적용시 약간 깨질 수 있습니다.) https://drive.google.com/drive/folders/1oVbmExgbi6WGbZGtl9iOFHU_HtetdMvu?usp=sharing thumb - Google Drive 이 폴더에 파일이 없습니다.이 폴더에 파일을 추가하려면 로그인하세요. drive.google.com
썸네일 [데이터베이스 첫걸음] 4장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 4장 데이터베이스와 아키텍처 구성: 견고하고 고속의 시스템을 구축하기 위해 아키텍처란 아키텍처는 시스템을 만들기 위한 물리 레벨의 조합. 이를 시스템이 완수해야할 목적과 비교하면서 결정해가는 것이 아키텍처 설계 아키텍처를 보면 그 시스템이 어떤 용도로 사용되고 무엇을 목적으로 하고 있는지를 어느정도 추측할 수 있다. 모든 시스템은 예산 제약이라는 한계 존재 -> 아키텍처의 설계는 매우 중요하다. 데이터베이스의 아키텍처 - 1. 역사와 개요 Stand-alone (~1980s) DB 서버가 LAN이나 인터넷 등의 네트워크에 접속하지 않고..
썸네일 [데이터베이스 첫걸음] 3장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 3장 데이터베이스에 얽힌 돈 이야기: 초기비용과 운영비용 시스템에 돈을 내는 이유 시스템을 새롭게 만들거나 서비스로써 제안하는 목적: 편리한 기능을 제공함으로서 이익을 얻기 때문 이익과 비용의 균형을 취해야 멋대로인 엔지니어 가 되지 말자 (자기만족인 시스템) 데이터베이스의 초기 비용 1. 시스템의 전체비용 내역 초기 비용: 최초에 지급하는 돈 (ex. 서버/네트워크 기기와 같은 하드웨어 구매비용) 운영 비용: 서비스를 이용하는 기간에 계속 지급하는 돈 (ex. 장애 대응, 프로그램 수정과 같은 유지보수) 2. 데이터베이스의 초기비용 ..
썸네일 [데이터베이스 첫걸음] 2장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 2장 관계형 데이터베이스란: 가장 대표적인 데이터베이스 관계형 데이터베이스란 (RDB) RDB 데이터를 2차원 표를 사용해 관리하는 데이터베이스 Relational: 2차원 표를 표기. ex) Excel, Google Docs (스프레드 시트) RDB의 혁신성 역사적 관점: 2차원 표를 소프트웨어를 사용해 능숙히 표현 함 기능적 관점: 2창원 표를 사용한 데이터 관리 방법은 획기적. RDB의 이점 프로그래밍 언어를 사용하지 않아도 데이터를 조작할 수 있다. -> DB 사용자층이 매우 넓어짐 SQL 기초 지식 관계형 데이터베이스에서 데이..
썸네일 [데이터베이스 첫걸음] 1장 디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 리뷰 2장 리뷰 3장 리뷰 4장 리뷰 [ SQL 첫걸음 ] 1장 데이터베이스란: 용도와 역할 데이터베이스의 기본 기능 데이터의 검색과 갱신 갱신: 등록, 수정, 제거 검색: 원하는 데이터 찾기 (조회) 동시성 제어 (= 베타 제어) 갱신의 무결성을 어느 정도로 보장하는가? 데이터베이스를 여러 사용자가 공유/이용할 때 어떻게 제어하는가? 어느 사용자에게는 괜찮은 동시성 제어가 다른 사용자에게는 불편한 상황: 트레이드오프의 관계 더티 쓰기 (Dirty Write) 어떤 사람도 문제없이 파일을 여는 것이 가능하고 나중에 수행된 쪽의 갱신이 반영 -> 데이터 무결성 관점에서 기피됨 장애 대응 데이터 다중화: 데이터를 여러곳에 분산해서 유지. 예방책..
썸네일 [실용주의 프로그래머] * 정리하다가 그냥 공개.... Before Reading 실용주의란 무엇인가, 실용주의 프로그래머는 어떻게 될 수 있을까. 개발을 하면서 실용주의적인 개발에 대해 생각해보았지만 혼자서 답을 찾기 어려운 문제였던 것 같다. 제목부터 실용주의를 담은 유명한 이 책을 읽으면서 실용주의에 대해 다시 생각해보고 좋은 개발에 대한 나만의 정의를 보완하는, 좋은 시간을 만들 수 있을 것 같다. 이 책을 선택한 이유? 읽어보고 싶었던 책이기도 했는데, 좋은 기회로 스터디를 할 수 있게 되어 읽게 되었다. 1장. 실용주의 철학 1. 당신의 인생이다. 직접 바꾸어라 2. 고양이가 내 소스코드를 삼켰어요 실수나 무지 같은 단점에 대해서도 정직해져야 한다 어설픈 변명을 만들지 말고 대안을 제시하라 3. 소프트웨어 엔트로피 ..
썸네일 [트러블슈팅] nginx pam_authenticate failed: Authentication failure nginx 재시작을 할 떄 계속 권한 문제가 발생하였다. AWS에서 사용한 모든 비번을 다 시도해도 안되었다. 심지어 pem키도 쳐보았다. 이 오류는 정말 놀랍게도 앞에 sudo를 안 붙여서 발생했다. sudo 붙이자 마자 모든것이 해결되었다. nginx -t 는 sudo 붙여놓고 왜 그랬을까....?
썸네일 [트러블슈팅] githubAction CICD secret 관련 에러 테스트를 위해 머지한 코드 반영이 전혀 안되고 있었다. 이상해서 커멘드 날려보니 이전에 대충 띄워본 jar가 계속 뜨고 있었다. jar kill하고 다시 액션 돌려도 jar가 안뜬다. 한마디로 서버 자체도 제대로 안뜨고 있었다. 바로 /app에 가서 cat application.log 으로 로그를 확인해보았다. 또 spring이 에러를 뿜었다. 아주 자주 봤던 디비 에러인데, 생각해보니 깃헙 액션에 applicaton 관련 설정이 없었다. gitignore해서 github에 올라가있지도 않기 떄문에 이 문제같았다. 바로 기존 깃헙 액션에 아래와 같이 secret을 가져오는 부분을 추가했다. - name: Copy application-secret env: APPLICATION_SECRET: ${{ sec..
썸네일 [트러블슈팅] AWS CodeDeploy 배포 중 ApplicationStop UnknownError 깃헙 액션을 날렸더니 계속 실패만 뜨는 상황이었다. 자세히 확인해보니 아예 처음부터 에러가 발생하고 있었다. 심지어 unknown이라 벌써 막막했다. 여러 블로그를 보았을때 가장 많이 보이는 글이 ec2 내 codedeploy-agent 미설치였으나, 내 경우는 아니었다. 여전히 모르겠어서 명령어를 통해 codedeploy의 로그를 확인하였다. 자세히 보니 권한 문제로 추정되는 무언가가 보였다. cat /var/log/aws/codedeploy-agent/codedeploy-agent.log 이번에는 다시 블로그들에서 IAM 권한 설정을 한 부분을 자세히 살펴보니, S3관련 설정에서 AmazonEC2RoleForAWSCodeDeploy를 추가하신 분도 있길래 따라서 추가해보았다. 그 뒤 agent를 재시..