분류 전체보기 32

[SonarQube] + SonarScanner : mac 설정 및 분석

# SonarQube 소나큐브 설치 SonarQube는 도커로 설치할 것이다.. 왜냐면 그냥 설치하려면 자바에 환경변수 설정도 해야하고 도커 까는게 더 간단하다 Get Started | Docker Get started with Docker Desktop and join millions of developers in faster, more secure app development using containers and beyond. www.docker.com 여기 들어가서 자기 OS랑 칩 맞게 도커 설치 해주면 된다 Code Deployment Tools & Software | SonarQube New SonarQube versions are delivered both as zip files and Doc..

Etc. 2024.02.26

[리팩터링 2판] 7장

07 캡슐화 7.1 레코드 캡슐화하기 절차 레코드를 담은 변수를 캡슐화 하기 const fruit = {name:’apple’, amount : 2}; const getTmpFruit = () => { return fruit }; 레코드를 감싼 단순한 클래스로 해당 변수의 내용을 교체하기. 이 클래스에 원본 레코드를 반환하는 접근자도 정의하고 변수를 캡슐화하는 함수들이 이 접근자를 사용하도록 수정 class Fruit { constructor(data) { this.data = data; } } 테스트 원본 레코드 대신 새로 정의한 클래스 타입의 객체를 반환하는 함수 만들기 const fruit = new Fruit({ name: "apple", amount: 2 }); const getFruit = (..

Refactoring 2024.01.17

[리팩터링 2판] 6장

6 기본적인 리팩터링 함수 추출하기 함수 인라인하기 변수 추출하기 변수 인라인하기 함수 선언 바꾸기 : 함수 이름 바꾸기 변수 이름 바꾸기 --> 변수 캡슐화하기와 관련이 깊음 매개변수 객체 만들기 : 같이 다니는 인수들 묶기 여러 함수를 클래스로 묶기 : 함수를 만들고 고수준 모듈로 묶기 여러 함수를 변환 함수로 묶기 : 읽기전용 데이터 다루기 좋음 단계 쪼개기 : 묶인 모듈들의 작업 처리 과정을 명확한 단계로 구분짓기 6.1 함수 추출하기 코드를 언제 함수로 묶어야하는가 길이 , 재사용성 : 두번 이상 사용 되는 코드 목적과 구현을 분리 : 기능 파악이 어렵다면 함수로 추출하기 함수 내 코드 대여섯줄 정도 짧은 함수 작성 --> 이름 잘 짓기 !!! 절차 함수를 새로 만들고 목적을 잘 드러내는 이름 ..

Refactoring 2024.01.17

[Backend] Express send(), write() 차이

# send() - express 프레임워크에만 있음 - content-type header 자동설정 - utf-8 자동설정 - JSON, HTML 등 다양한 데이터 형식으로 전송 가능 - 한 fetch에 대해 한번만 호출 가능 - 일반적으로 많이 사용 - write + end의 느낌 # write() - end() 호출 전 까지 여러번 호출하여 데이터 조각 보내기 가능 - 백엔드에서 단계별 응답을 프론트에 보여주기 용이 (로딩바 21/100, 62/100, 83/100, ... 과 같이) - 스트리밍데이터, 대용량 파일처리에 유리 (데이터가 크면 알아서 조각내서 보냄 -> 클라이언트에서 조각 합치는 로직 필요) - string 형식으로 전송 가능 - client에 Unit8Array 형식으로 받음, d..

Web 2024.01.08

[Backend] Node.js + Express MVC 기초 세팅

. ├── README.md ├── node_modules ├── package-lock.json ├── package.json ├── src │ ├── app.js │ ├── controllers │ │ └── index.js │ ├── routes │ │ └── index.js │ └── views │ ├── error.ejs │ └── index.ejs └── yarn.lock 폴더구조 // app.js const express = require("express"); const logger = require("morgan"); const cors = require("cors"); const path = require("path"); const createError = require("http-err..

Web 2024.01.02

[Frontend] JS/TS 체인/루프 구현

일단 데이터는 아래와 같이 생김 chains: { chain1: { request: { text: "체인1", }, children: { "chain1-1": { request: { text: "체인1-1", }, children: { "chain1-1-1": { request: { text: "체인1-1-1", }, }, "chain1-1-2": { request: { text: "체인1-1-2", }, }, }, }, "chain1-2": { request: { text: "체인1-2", }, }, }, }, 체인2: { request: { text: "chain2", }, children: { "체인2-1": { request: { text: "chain2-1", }, children: { "체인2..

Web 2023.11.06

[Backend] Django MTV중 TV 해보기

2020년 글 백업 ㅎㅎ 장고 이후로 한~번도 안 써봄 하 내가 백엔드를 했어야했는데~ Django는 MVC 가 아니라 MTV 이번에 내가 한 건 db가 필요 없어서 model은 없고 template이랑 view만 썼다 view가 spring의 controller 같은 느낌 [home.html] {% csrf_token %} 비동기 통신으로 element 갖다 붙히려고 jQuery 씀 [view.py] from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt from django.template import loader import json @csrf_exempt def main(request): if..

Web 2023.10.14

[Frontend] axios/fetch headers utf8 한글 오류

내 2020년 글 백업 ・・・ Vue (js)로 Axios 통신을 하면서 Multipart File을 Body에 넘겨줘야했음. 그래서 다른 json 정보들은 Header에 담아보내주려고함.. 근데 Failed to execute 'setRequestHeader' on 'XMLHttpRequest': Value is not a valid ByteString 이런 에러가 뜨는 것 아닌가?..!@!!? 일단 나는 'XMLHttpRequest'를 선언한 적도 없는데 이런 오류가 뜨니 뭔가 싶었다 구글링해보면 다 Ajax 관련 해결법,, 이래저래 찾아보다가 알게된 사실은 헤더에는 utf8 적용이 안 된다는 것 --> 한글이 안보내짐 그래서 base64로 변환해서 보낸 후, 백에서 다시 utf8로 디코딩 하면 된다..

Web 2023.10.13

[Backend] AWS ec2 서버 시간 설정

2020년도 회사 입사전 사이드 프로젝트 진행했을 때 썼던 글 팀원이 나한테 백엔드 왜 알아요? 하는데 .. 아무래도 싸피에서는 백엔드만 했었으니 .. AWS 배포를 했더니 시간이 계속 9시간 전으로 떠서 이거 해결한다고 DB도 날리고 .. 아주 혼자서 눈물의 쇼를 했다 먼저 Maria DB 시간부터 서울로 지정 SET GLOBAL time_zone='Asia/Seoul'; SET time_zone = 'Asia/Seoul'; select @@global.time_zone, @@session.time_zone; 이렇게 나오면 됨 난 이것만 맞으면 서버에 잘 뜰거라 생각했쥐 하지만 아니었다 EC2 시간 설정 date 치면 ec2에서 설정된 시간이 뜨는데 난 지금 서울로 설정해서 kst가 뜬다 하지만 기본 ..

Web 2023.10.12

[Backend] node.js + next.js API Routes 기초

지금 하는 플젝이 약간 구조가 복잡해서 백을 nodejs, spring boot 둘 다 사용해야한다 그리고 nodejs 쪽 개발을 내가 맡게 되었. 풀스택 개발자 오히려 조하 Routing: API Routes | Next.js Using Pages Router Features available in /pages nextjs.org next.js의 API Routes를 이용해 프론트코드에서 백엔드까지 작성이 가능하다 src/pages/api 아래에 node 코드를 작성하면 작동한다 프론트에서 호출할 때는 await fetch('/api/audits/info').then(~~).catch(~~).finally(~~) 간단한 테스트 페이지를 만들어봤다 api test 1은 {error : 'error'}를 ..

Web 2023.10.11