Server
-
[MySQL] JSON_ARRAGG, JSON_OBJECTServer/MySQL 2022. 11. 7. 17:44
MySQL로 테이블을 조인해서 데이터를 불러오면 아래와 같이 출력된다. SELECT users.id, users.profile_image, posts.id, posts.post_image_url, posts.content FROM users INNER JOIN posts on posts.user_id = users.id; group by, subquery등 구글링을 하다가 방법들을 알아내기는 했지만 group by의 경우 집합함수(aggregate functions => ex. (COUNT(), MAX(), MIN(), SUM(), AVG() ))에 주로 쓰인다는 코멘트와 사례들을 보고 group by 예약어로는 불가능하구나 라고 생각하고 있었다. 그렇게 중복된 row를 어떻게 묶어줄 수 있을까 고민하고..
-
MySQL 제약조건 확인, 추가, 수정, 삭제 방법Server/MySQL 2022. 11. 7. 16:47
CRUD API 기능 구현 중에 DB table에 column에 unique 키 제약조건을 잘못 설정했었다. 예를들어, 로그인을 위한 정보를 받아오는데 이름에 unique값이 들어간다던지..하는 말도 안되는 실수가 있었는데, 연습이니까 테이블을 지우고 갈아 엎어도 됐지만, 현업에서 그렇게 문제를 해결하는 것은 절대 불가능할 것이기 때문에 테이블 컬럼의 제약조건을 수정하는 방법을 찾아서 해결했었다. 물론 처음 테이블을 만들 때 부터 제약조건을 잘 걸어뒀으면 문제없겠지만! 나중에 프로젝트 할 때 ERD를 세세하게 잘 만들어 둬서 수정하는 일을 없게 해야겠다! // 제약조건 확인하기 select * from information_schema.table_constraints // 이건 내 db 전체 select..
-
HTTPServer/기타 2022. 10. 30. 16:59
1. HTTP란 무엇인가? 1.1 HyperText - 정의 : 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트 1.2 Transfer - HTML 문서를 다른 컴퓨터에 주고 받는데 그 때, 보내는 주체와 받는 주체가 있다. 1.3 Protocol - 프로토콜은 협약, 통신 규약이라는 의미이다. 즉, HTTP는 컴퓨터끼리 어떻게 HTML 파일을 주고받을 지에 대한 통신 규약을 의미한다. 2. Stateless - Stateless = state(상태) + less(없음) 즉, 각각의 HTTP 통신(요청/응답)은 독립적이기 때문에 과거의 통신(요청/응답)에 대한 내용을 전혀 알지 못 한다는 특징. 따라서, 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다. 3..
-
[HOW] Node.js 모듈 시스템Server/Node.js 2022. 10. 30. 13:15
[이전 글 참고] 1. [WHAT] Node.js란 무엇인가? : https://growth-msleeffice.tistory.com/51 2. [WHY] Node.js 기반으로 API 서버를 구축하면 좋은 이유 : https://growth-msleeffice.tistory.com/52 3. [How] Node.js 모듈 시스템 3.1 Custom 모듈 만들기 모듈도 LEGO 블록과 마찬가지로 코드의 조각으로, 여러 모듈이 조합되어 하나의 소프트웨어를 이루게 됩니다. 즉, 프로그램을 만들 때 코드를 잘 모듈화해서 만들게 되면, 유지보수하기 쉬운 구조로 시스템을 만들 수 있습니다. 결국에는 모듈화가 잘 된 코드는 재사용성과 확장성을 높여 새로운 기능을 개발하거나 유지보수 할 때, 전체적인 비용을 감소시키..
-
[WHY] Node.js 기반으로 API 서버를 구축하면 좋은 이유Server/Node.js 2022. 10. 30. 13:13
[이전 글 참고] 1. [WHAT] Node.js란 무엇인가? : https://growth-msleeffice.tistory.com/51 [다음 글 참고] 3. Node.js 모듈 시스템 : https://growth-msleeffice.tistory.com/53 2. [Why] Node.js 기반으로 API 서버를 구축하면 좋은 이유 2.1 frontend와 backend 기술 스택 통합 - 클라이언트와 서버의 동일한 언어 사용으로 코드를 모듈로 만들어서 "재사용"가능 - FE개발자 서버 프로그래밍 접근성 향상 - 개발팀 생산성 향상 2.2 빠른 처리속도, 동시요청 처리 성능 - V8 엔진은 JIT 컴파일 방식, V8의 최적화 기법으로 놀라운 속도로 작업을 수행한다. - libuv라는 비동기 I/O에..
-
[WHAT] Node.js란 무엇인가?Server/Node.js 2022. 10. 30. 13:11
이번 주, 위코드에서 Node.js 세션이 시작되었다. JavaScript로 간단한 기능들을 구현하거나 문제풀이 했던 것과는 다르게 filesystem 객체를 활용해 가상의 데이터베이스에서 데이터를 뽑아오는 것도 해보고, GET, POST, PATCH, DELETE API도 구현해보면서 보다 실무와 가까워지는 느낌이 들어 뿌듯했다! 아직 클라이언트, 데이터베이스와 연결하는 작업은 하지 않았지만, 연결되었을 때를 상상하며 학습하고 과제를 완수했다. 멘토님들께서 보여주신 코드들과 내 코드를 비교해보니 배울 점이 많았다. 내 코드는 의식의 흐름대로 맥락없이 흘러내려간 글이라면, 멘토님들의 코드는 내용별로 단락 구분이 잘 된 정돈된 글이었다. 특히, 인상 깊었던 것은 함수지향 프로그래밍을 하고계신건가? 싶은데 ..
-
Linux & TerminalServer/기타 2022. 10. 28. 15:22
Linux & Terminal 1. 운영체제 OS의 역할? 유저와 컴퓨터를 연결시켜준다. 사람과 기계 사이의 통역관! 컴퓨터는 생각보다 멍청하다. 0과 1밖에몰라 근데 계산은 되게 잘해. 그래서 0과 1 밖에 모르는 컴퓨터가 알아들을 수 있게 사용자의 명령을 OS가 변환해준다. 이건 OS의 부분적인 역할이고 OS는 컴퓨터의 자원관리도 해주고, 자원 보호까지 해준다. 그리고 효율적으로 컴퓨터를 사용할 수 있게끔 인증도 해준다. 1.1 커널과 쉘 사용자 ↔ 쉘 ↔ 커널 ↔ 하드웨어 터미널을 실행하면 뜨는 화면이 쉘이다. 쉘에는 여러가지가 있다 bash, zsh 근데 요새는 zsh를 많이 쓴다. 쉘은 사용자 입장에서 컴퓨터에게 명령을 내리는 곳이다. 그 명령을 커널이 가져다가 하드웨어에 전달을 해주고 하드웨어..
-
개발자도구 Element(요소) 패널Server/기타 2022. 10. 23. 18:46
1. Element 패널의 기능은? 웹 페이지의 구성 (DOM)을 확인할 수 있다. DOM ? ⇒ (Document Object Model) 텍스트 파일로 만들어져 있는 웹 문서를 브라우저에 렌더링하려면 웹 문서를 브라우저가 이해할 수 있는 구조로 메모리에 올려야 한다. 브라우저의 렌더링 엔진은 웹 문서를 로드한 후, 파싱하여 웹 문서를 브라우저가 이해할 수 있는 구조로 구성하여 메모리에 적재하는데 이를 DOM이라 한다. 정적인 웹페이지에 접근하여 동적으로 웹페이지를 변경하기 위한 유일한 방법은 메모리 상에 존재하는 DOM을 변경하는 것이고, 이때 필요한 것이 DOM에 접근하고 변경하는 프로퍼티와 메소드의 집합인 DOM API이다. 참고자료 : https://poiemaweb.com/js-dom 구성요소..
-
컴퓨팅적 사고...? 컴퓨터처럼 생각하라는건가?Server/기타 2022. 10. 20. 17:31
컴퓨팅적 사고 컴퓨터처럼 사고하는 것이 무엇인가? 컴퓨터가 효과적으로 일을 할 수 있도록 사람이 문제를 정의하고 그에 대한 답을 기술하는 것이 포함된 사고과정의 일체. 컴퓨터가 되라는 말이 아니다. 사람과 컴퓨터는 사고방식이 다르다. 사람은 의지와 창의력을 갖지만 컴퓨터는 사람이 주는 전기신호가 없이는 그 무엇도 할 수 없다. 창의적인 사람의 사고에 맞게 컴퓨터가 움직여줄 수 있도록, 어떤 면에서는 멍청하지만 사고방식은 겁나 복잡한 컴퓨터에게 "이렇게, 저렇게 하도록 해" 라고 친절하게 설명해주어야 한다. 즉, 컴퓨팅적 사고란 사람없이는 의미있는 아웃풋을 낼 수 없는 컴퓨터를 사려깊게 배려해주는 자세라고 뭉뚱그려 표현해 본다. 아키텍쳐 개념을 빌리면 순차, 분기, 반복의 개념을 사용하면 알고리즘을 완성할..
-
개발자라며? 인터넷과 웹의 차이가 뭐야?Server/기타 2022. 10. 19. 13:57
백앤드 개발자가 되기 위해 위코드에 온지 2일째 되는 날이다. 세션을 진행하는 멘토님께서 “Internet과 WEB의 차이에 대해서 알고 계신 분 있으신가요?” 물어보셨다. 사전스터디때 학습한 내용인 것 같긴 한데, 잘 떠오르지 않았다. 나는 무엇을 하든 엄밀하게 why, what, how를 먼저 고민하고 정립한 후 움직인다. 그런데 이번에는 하지 못했다. 웹개발자가 되겠다고 공부를 하고있는데, 웹이 무엇인지 모르고 있다는 사실이 부끄러웠다. 그래서 오늘 세션의 내용은 복습 후에 꼭 다시 내 언어로 정리해야겠다고 생각했다. 웹 서비스의 역사 - Part.1 1. Internet 1.1 Internet 인터넷은 쉽게 말해 컴퓨터와 컴퓨터를 이어주는 통신망, 네트워크이다. 단순히 물리적으로 떨어져 있는 두 ..