본문 바로가기

All146

제38회 SQLD 합격 후기 내 배경지식에 대해 짤막하게 설명하자면, 난 복수전공을 하면서 데이터베이스 강의를 수강한 적 없는 전공자이다. SQL이라고는 mysql이라는 이름에서 본 기억이 전부였다. 사실상 비전공자랑 비슷한 수준에서 진행했다고 보면 될 것 같다... 37회차에서 1문제 차이로 떨어졌었다. 5만원 돌려줘 37회차 때는 노란책으로만 공부를 했고, 개념은 홈페이지로만 읽었었다. 38회차 때는 노란책+홈페이지 개념+정리 PDF를 함께 병행함! 무엇보다 카페에 올라와있는 기출을 많이 풀었다. 이기적으로 사서 공부하는 친구들이 문제를 물어볼 때마다 정신이 혼미했다. 이기적 문제는 꽤 괴팍한거같다.. 그리고 몇몇 문제가 해설이 잘못되어 있어서 꽤 큰 혼란이 있었다. 그때마다 카페에서 확인해봤었음.. 이기적도 나쁘지는 않은데 완.. 2020. 10. 6.
객체지향 프로그래밍이란? 이미지에서 알 수 있듯이, 절차지향 언어는 출금, 입금, 송금이라는 '기능(function)'에 중점을 둔다면 객체지향 언어는 손님, 돈, 계좌라는 '객체(Object)'에 중점을 두고 있다. 객체지향 프로그래밍(Object-Oriented Programming) 객체지향 프로그래밍이란 컴퓨터 프로그래밍 패러다임 중 하나로 프로그래밍 로직을 객체로 만들어 나가는 것을 의미한다. 여기에서 객체란 하나의 역할을 수행하는 메소드와 변수의 묶음을 의미한다. 대표적 언어로는 C++, C#, Java 등이 있다. 절차지향 프로그래밍 (Procedural-Oriented Programming) 절차지향 프로그래밍이란 컴퓨터 프로그래밍 패러다임 중 하나로 순차적 처리를 중요시 여기는 프로그래밍 기법이다. 일반적으로 컴.. 2020. 10. 5.
20.10.02 면접 스터디 1. REST API란? RESTful 하다는 것의 의미 REST의 구성요소 REST API의 장점 기존 방식과 REST 방식의 차이점 SOAP와 REST 방식의 차이 REST는 웹에 존재하는 모든 자원에 고유한 주소 URI를 정의하고 자원에 Create Read Update Delete를 실행하는 방식을 정해놓은 아키텍처 스타일이다. 이러한 방식로 API를 만든 것을 REST API라고 한다. REST 아키텍처의 6가지 제한 조건 클라이언트/서버 구조, 무상태(클라이언트의 내용이 서버에 저장되면 안 된다), 캐시 처리 가능, 계층화, 인터페이스 일관성, Code on demand이 있다. 또한 REST의 원리를 따르는 시스템은 RESTful 하다고 한다. REST의 구성 요소는 자원, 행위, 표현이다... 2020. 10. 4.
20.09.28 면접 스터디 1. 프로세스와 스레드 프로세스와 스레드의 정의 및 차이점 멀티프로세스의 장점과 단점 멀티스레드의 장점과 단점 프로세스는 실행중인 프로그램을 의미한다. 프로세스는 코드, 데이터, 힙, 스택 별로 각각의 주소공간에 독립적으로 할당받는다. 반면 스레드는 스택만 따로 할당 받고 나머지는 서로 공유한다. 프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는 데에 비해 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용한다. 스레드는 프로세스의 실행단위를 의미한다. 프로세스마다 메인 스레드를 포함하여 최소 1개의 스레드를 소유한다. 멀티프로세스의 장점은 안전성이지만, 각각의 메모리 공간을 갖고 있어 작업량이 많을 수록 오버헤드가 발생한다. 반면 멀티 스레드는 독립적인 프로세스에 비해 공유 메모리를 사용하여 .. 2020. 9. 28.
20.09.24 오늘 스타트업 면접을 보고 왔다. 면접 복기.. 라기 보단 면접 후 느낀점. 면접은 뭘 하던 얻는 게 있다는 말이 새삼 떠오른다. 만약 면접자가 이상한 사람이었다면, 이런 회사는 가지 말아야겠다는 기준이 생길 거고, 면접 중에 내가 답변을 하지 못한 내용이 있다면 다음에는 이런 걸 준비해야겠다는 생각이 들 것이다. 오늘 면접에서 제일 인상 깊었던 질문은 이거다. Q. 언제부터 개발 직무를 생각했어요? 사실 이 질문은 NBP때도 들은 질문인데, 난 정말 뻔한 얘기일 수 있지만 초등학교때부터 개발자가 지망이었다.. 근데 이걸 말하는 게 웃기더라... 한 길만 팠다는 얘기가 생각보다 스토리가 없다해야하나? 난 학교를 1년 일찍 갔다. 초등학교 때부터 1년 학교를 일찍갔는데, 엄마가 독수리 권법(?)으로 타자를.. 2020. 9. 24.
안드로이드 액티비티 생명주기 안드로이드와 멀어진 지 너무 오래된 것 같아 오랜만에 정리해보는 시간을 가지려 이 주제를 선택하게 되었다.. 먼저 안드로이드가 무엇인지, 그 구성요소인 컴포넌트들과 그 중 액티비티 생명 주기에 대해 다뤄보려 한다. 안드로이드란? 안드로이드란 간단히 말해 구글에서 만든 스마트폰용 운영체제이다. 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 등을 포함하고 있는 소프트웨어 스택이자, 모바일 운영체제라고 할 수 있다. 안드로이드는 리눅스(Linux)를 기반으로 제작되었고 Java와 Kotlin으로 응용 프로그램을 작성할 수 있다. 안드로이드 4대 컴포넌트 액티비티, 서비스, 콘텐츠 제공자, 방송 수신자를 의미한다. 이것은 어플리케이션을 만들 때 주요 구성요소이며, 보통 개발 시 이들을 상속받아 .. 2020. 9. 21.
암호화 기법 이전에 면접 질문리스트에 올렸던 질문들 중, 암호화에 대한 개인적 답변 정리를 간략히 가져왔다. 암호화는 어떤 식으로? 단방향 암호화로 bcrypt(비크립트)를 사용했습니다. 이때 hash와 salt 방식을 동시에 사용했습니다. 왜 두 가지를 사용했는지? 해시만 사용했을 때는 인식가능성과 속도면에서 문제가 발생합니다. 해시의 다이제스트를 해킹당하게 되면 모든 비밀번호가 노출될 가능성이 있기 때문에 인식가능성에 문제가 있고, 해시의 빠른 속도 때문에 공격자들은 매우 빠른 속도로 임의의 다이제스트와 해킹할 다이제스트를 비교할 수 있기 때문입니다. 일단 실제 면접에서는 암호화 관련 질문은 받지 못했으나, 개인적으로 정리해보면서 유익했었기 때문에 이번 주제는 암호화에 대해 간단히 말해보고자 한다. 단방향 암호화.. 2020. 9. 15.
github.io 웹 포트폴리오 만들기 내가 일단 보고 예쁘다고 생각했던 웹 포트폴리오가 몇 개 있었다. 나는 웹 개발을 해 보긴 했지만 js에 대한 이해가 완벽하지 않았다. 간단히 프로젝트를 주고 필요한 기능을 짜라하면 짤 수 있지만 프로젝트 기반부터 짜라하면 짤 수 없는 상태..? 일단 내 포트폴리오의 목적은 기본적으로 간단한 이력서 개념이고, 웹 퍼블리싱 능력보단 다른 프로젝트들은 쉽게 전시하기 위해 만든 포트폴리오이다. -> 간단히 말해서 처음부터 직접 짜기보단 기반 포트폴리오 소스에서 짰다는 얘기다ㅋㅋㅋㅋㅋㅋㅋㅋ 그래서.. 가장 먼저 한 일은 github에서 dev portfolio를 검색했다! 몇 가지 후보가 있긴 했지만 나는 아래의 오픈 소스를 사용했다. github.com/saadpasta/developerFolio saadpa.. 2020. 9. 15.
Cafe24 NodeJS 웹 호스팅 #FIXME Cafe24 NodeJS 웹 호스팅 사용하면서 발견했던 오류 및 해결 방법 정리. git 관련 오류 kex_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. The authenticity of host '호스팅 주소 (IP주소)' can't be established. ECDSA key fingerprint is SHA256:암호화 된 퍼블릭 키 Are you sure you want to continue connecting (ye.. 2020. 9. 6.
[백준 16985] Maaaaaaaaaze www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net #include #include #include using namespace std; #define fastio() ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); // Maaaaaaaaaze struct point { int x; int y; int z; }; const int N = 5; int map[N][N][N]; int temp_map[N.. 2020. 9. 6.