티스토리

things
검색하기

블로그 홈

things

baeritas.tistory.com/m

ㅋ. ㅋ 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [NGINX] 간단한 설정과 auth request 목차더보기파일 설명sites ~auth_request$http_name 사용자 정의 헤더 값 /etc/nginx/nginx.conf: 글로벌 설정을 관리하는 메인 설정 파일./etc/nginx/conf.d/*.conf: 개별 서버 블록 설정 파일들이 위치하는 디렉토리./etc/nginx/sites-available/: 개별 사이트의 설정 파일들이 위치하는 디렉토리./etc/nginx/sites-enabled/: 활성화된 사이트의 설정 파일들이 위치하는 디렉토리./etc/nginx/mime.types: MIME 타입 설정 파일.sites-available, sites-enabled 에 대하여 ...해당 설정은 한 웹 서버에서 여러 다른 도메인으로 서비스를 띄울 때 유용하다.test1.comtests2.co.. 공감수 0 댓글수 0 2024. 9. 10.
  • [Frontend] Redux Toolkit store data 저장소, reducer를 받아야함, subscribe로 변화 감지 action 어떻게 수정할 건지 Object (ex. { type: "ADD" }) 넘겨줌, store.dispatch로 실행 reducer state랑 action 받아서 state 수정하는 함수 -> action.type 별로 스위치 해서 state변경 수행, state 직접 수정 (mutate) 불가 const reducer = () => {}; const store = createStore(reducer); store.dispatch(action); // dispatch를 써서 action을 reducer로 전달 store.getState() store.subscribe(()=>{~~~}); createSlice.. 공감수 0 댓글수 0 2024. 4. 1.
  • [Frontend] Cache의 간단한 이해 캐시의 종류 개발자도구 네트워크 탭을 보면 메모리캐시와 디스크캐시가 있다 메모리캐시는 캐시 메모리에 캐시를 저장하고 디스크캐시는 RAM에 캐시를 저장하고 메모리캐시가 더 빠르고 용량이 적다. 어떤 캐시를 어느 메모리에서 사용할지는 브라우저가 정한다 Cache-Control 헤더 옵션 - no-cache : 서버에서 해당 캐시를 사용할 수 있는지 (만료되지 않았는지, 변경되지 않았는지 등) 검사 후 사용 결정 - no-store : 캐시 미사용 - private : 브라우저 환경에서만 캐시 사용, 외부 캐시 서버에서는 사용 불가 - public : 모든 환경에서 캐시 사용 - max-age : 캐시의 유효기간 설정 (no-cache를 max-age=0으로 표현 가능) 저 옵션은 백엔드에서 설정해준다. 그래.. 공감수 0 댓글수 0 2024. 3. 7.
  • [Frontend] 이미지 최적화 프론트엔드 이미지 최적화 방법 1. 뷰포트 밖의 이미지는 나중에 로드하기 2. webp 이미지 형식 사용하기 1. 뷰포트 밖의 이미지는 나중에 로드하기 당장 화면에 먼저 보이는 이미지만 먼저 로드하고 스크롤 아래 이미지는 이미지 영역이 화면에 등장하는 시점에 이미지를 로드하는 방법!! scroll 할 때마다 이미지 영역이 화면에 들어오는지 체크하는 건 너무 이벤트 호출이 잦기 때문에 IntersectionObserver를 사용할 것이다 IntersectionObserver - Web API | MDN Intersection Observer API의 IntersectionObserver 인터페이스는 대상 요소와 상위 요소, 또는 대상 요소와 최상위 문서의 뷰포트가 서로 교차하는 영역이 달라지는 경우 이를 .. 공감수 0 댓글수 0 2024. 3. 6.
  • husky + commitizen : 커밋 컨벤션 맞추기 husky + lint-staged : 커밋 전 eslint, prettier 검사 husky + lint-staged를 이용해 eslint와 prettier가 적용 됐을 때만 커밋 가능하게 만들것이다~ 그전에 husky와 lint-staged를 알아보자 # Husky Automatically lint your commit messages,code, and run tests upon committing or pushing. baeritas.tistory.com Husky 2탄! 설치 방법은 위 글을 보면 되고 버전은 9! Husky는 git hook 기능을 편리하게 사용할 수 있도록 도와준다 Git Hooks란? 어떤 이벤트가 생겼을 때 자동으로 특정 스크립트를 실행하도록 할 수 있다. 이번에 할 것은.. 공감수 0 댓글수 0 2024. 3. 4.
  • [리팩토링 2판] 11장 11.API 리팩터링 11.1 질의 함수와 변경 함수 분리하기 겉보기에 부수효과 없이 값을 반환해주는 함수를 추구해야함 -> 질의함수 (읽기함수, 연산을 통해 값을 계산하여 반환하는 함수)는 모두 부수효과가 없어야함 값을 반환하면서 부수 효과도 있다면 분리 하는게 좋음 절차 대상 함수를 복제하고 질의 목적에 충실한 이름을 짓기 새 질의 함수에서 부수효과를 모두 제거하기 정적 검사 원래 함수를 호출하는 곳을 모두 찾기. 호출하는 곳에서 질의 함수를 호출하도록 변경하고, 원래 함수 호출을 아래 줄에 추가하기. 하나 바꾸고 테스트 원래 함수에서 질의 관련 코드 제거 테스트 11.2 함수 매개변수화 하기 두 함수 로직이 비슷하고 리터럴 값만 다르다면, 그 값만 매개변수로 받고 함수 합치기 절차 비슷한 함수 중 .. 공감수 0 댓글수 0 2024. 3. 1.
  • [리팩터링 2판] 10장 10. 조건부 로직 간소화 10.1 조건문 분해하기 복잡한 조건부 로직 - 읽기 어려움 코드 분해 후 함수 호출로 변경하여 의도 드러내기 절차 조건식과 그 조건식에 딸린 조건절 각각을 함수로 추출하기 if (!여름전 && !여름후) { // => 해당 조건을 isSummer()와 같이 변경 // 이 안에 있는 로직도 함수로 추출 charge = summerCharge(); } else { // 이 안에 로직도 함수로 추출 charge = regularCharge(); } // 혹은 3항연산자 charge = isSummer() ? summerCharge() : regularCharge(); 10.2 조건식 통합하기 비교 조건은 상이하나 수행 동작은 같을 때 통합하기 조건부 코드 통합 이유 나뉜 조건들을 .. 공감수 0 댓글수 1 2024. 2. 29.
  • husky + lint-staged : 커밋 전 eslint, prettier 검사 husky + lint-staged를 이용해 eslint와 prettier가 적용 됐을 때만 커밋 가능하게 만들것이다~ 그전에 husky와 lint-staged를 알아보자 # Husky Automatically lint your commit messages,code, and run tests upon committing or pushing. 커밋 메시지, 코드를 자동으로 린트하고 커밋 또는 푸시 시 테스트를 실행하세요. Husky는 git hook을 이용해 위와 같은 기능을 수행한다 Git Hooks란? 어떤 이벤트가 생겼을 때 자동으로 특정 스크립트를 실행하도록 할 수 있다. 클라이언트 훅은 커밋이나 Merge 할 때 실행되고 서버 훅은 Push 할 때 서버에서 실행된다. (https://git-scm.. 공감수 0 댓글수 0 2024. 2. 28.
  • [리팩터링 2판] 8장 8장 8.1 함수 옮기기 메서드 이동 좋은 소프트웨어 설계 핵심 : 모듈성 절차 선택한 함수가 현재 컨텍스트 내에서 사용중인 모든 프로그램 요소 살펴보기. 함께 옮길 것들이 있는지 보기 함께 옮겨야할 함수가 있다면 그 함수부터 옮기는게 나음. 여러게 옮겨야하면 영향이 적은 함수부터 옮기기 하위 함수들의 호출자가 고수준 함수 하나면 하위 함수를 고수준함수에 인라인 하고, 고수준함수 옮기고 다시 개별함수로 추출 선택한 함수가 다형 메서드인지 확인 (js에서는 쓸 일 없을 것 같은?) 선택한 함수(소스 함수)를 타깃 컨텍스트로 복사한 후 다듬기 함수 본문에서 소스 컨텍스트의 요소 사용 시, 파라미터로 옮기거나 소스컨텍스트 자체를 참조로 넘기기 정적 분석 소스 컨텍스트에서 타깃 함수를 참조할 방법을 찾아 반영 .. 공감수 0 댓글수 4 2024. 2. 28.
  • [GitLab] CI/CD 오류 : There has been a missing dependency failure 소나큐브 연동한다고 ci/cd 이것저것 테스트 하다가 다 실패해서 원복 하는 중에 마주한 There has been a missing dependency failure 이게 뭔데 .... 구글링 하니까 artifacts가 잘못됐다 어쩌구 저쩌구 settings ci/cd variables를 잘못 건든건가 했는데 원래 거기엔 암것두 없었구요 결론을 말하자면~ ci/cd 단계가 build - deploy 두 단계인데 수동으로 원복할 때 deploy만 하면 될 줄 알고 build는 안돌리고 deploy만 다시 돌려서 이런 오류가 났던 것이다 build 파일이 오래 돼서 날아가버린듯? artifacts의 문제였습니다 ~ 아님 내가 테스트한다고 다른 빌드 파일들 만들어서 그런가 정확한 이유는 모르겠지만 build.. 공감수 0 댓글수 0 2024. 2. 28.
  • [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.. 공감수 0 댓글수 0 2024. 2. 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 = (.. 공감수 0 댓글수 0 2024. 1. 17.
  • [리팩터링 2판] 6장 6 기본적인 리팩터링 함수 추출하기 함수 인라인하기 변수 추출하기 변수 인라인하기 함수 선언 바꾸기 : 함수 이름 바꾸기 변수 이름 바꾸기 --> 변수 캡슐화하기와 관련이 깊음 매개변수 객체 만들기 : 같이 다니는 인수들 묶기 여러 함수를 클래스로 묶기 : 함수를 만들고 고수준 모듈로 묶기 여러 함수를 변환 함수로 묶기 : 읽기전용 데이터 다루기 좋음 단계 쪼개기 : 묶인 모듈들의 작업 처리 과정을 명확한 단계로 구분짓기 6.1 함수 추출하기 코드를 언제 함수로 묶어야하는가 길이 , 재사용성 : 두번 이상 사용 되는 코드 목적과 구현을 분리 : 기능 파악이 어렵다면 함수로 추출하기 함수 내 코드 대여섯줄 정도 짧은 함수 작성 --> 이름 잘 짓기 !!! 절차 함수를 새로 만들고 목적을 잘 드러내는 이름 .. 공감수 0 댓글수 0 2024. 1. 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.. 공감수 0 댓글수 1 2024. 1. 8.
  • [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.. 공감수 0 댓글수 1 2024. 1. 2.
  • [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.. 공감수 0 댓글수 0 2023. 11. 6.
  • [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.. 공감수 0 댓글수 1 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로 디코딩 하면 된다.. 공감수 0 댓글수 0 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가 뜬다 하지만 기본 .. 공감수 0 댓글수 0 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'}를 .. 공감수 0 댓글수 0 2023. 10. 11.
  • [리팩터링 2판] 3, 4장 3.1 기이한 이름 코드는 단순 명료 --> 이름을 통해 무슨 일을 하는지, 사용 방법을 알 수 있어야한다 함수 선언 바꾸기 변수 이름 바꾸기 필드 이름 바꾸기 이후 문맥 파악 시간 절약 가능 3.2 중복 코드 코드 중복 시 서로 차이점은 없는지 살펴봐야하는 부담 하나 변경 시 비슷한 코드들 모두 수정해야함 함수 추출하기 문장 슬라이드 하기 : 코드가 비슷하지만 완전 똑같지 않을 시 비슷한 부분 모으기 메서드 올리기 : 파생 서브 클래스 내 코드 중복시 부모로 이동 3.3 긴 함수 짧은 함수 구성 시 이해, 공유, 선택이 쉬워짐 함수명을 의도가 드러나게, 잘 지으면 본문 코드를 보러 갈 필요가 없어짐 주석을 달아야할 부분은 무조건 함수로 만들기 함수를 짧게 만드는 작업의 99%는 함수 추출하기가 차지 :.. 공감수 0 댓글수 0 2023. 10. 4.
  • [Frontend] JWT JWT : Json Web Token - Access Token, Refresh Token으로 이뤄져 있음 Access Token을 axios 헤더로 설정해 인증된 사용자임을 서버에 알려 api 통신함 (로컬 스토리지에 저장하지 않음) 만료 시간이 있기 때문에 만료 시, Refresh Token을 이용해 Access Token을 다시 발급 받음. 클라이언트(프론트)가 보낸 Refresh Token과 DB에 있는 Refresh Token 일치 시, 새 Access Token과 Refresh Token이 발급 됨 Access Token은 로컬스토리지, 쿠키 등에 저장하지 않았으므로 새로고침, 브라우저 종료 시 사라짐 Refresh Token은 로컬 스토리지/쿠키에 저장 (새로고침, 브라우저 종료 시에도 남아.. 공감수 0 댓글수 0 2023. 10. 4.
  • [Frontend] Node.js, Babel, Webpack 프론트엔드 프로젝트를 하다보면 자꾸 마주치는 것들 하지만 정확히는 모르던 것들 정리@! Node.js : Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 환경 왜 쓰는지? 1. JS를 브라우저 외의 환경에서도 실행할 수 있도록 해줌 - 기존의 JS는 브라우저에서 작동 --> OS 기능 사용 불가 (ex. 카메라, 파일 I/O, 네트워크 통신 등) 2. npm 제공 - node.js 에서 사용할 수 있는 모듈 패키지 제공 (ex. 웹팩, 바벨) Babel : Javascript Compiler 트랜스파일러 : 모던자바스크립트 (ES6+) -> 구 표준 코드 (ES5) 변환 - 구형 브라우저에서도 모던자바스크립트가 작동하도록 해줌 폴리필 : 기능을 지원하지 않는 웹브라우저 상.. 공감수 0 댓글수 1 2023. 5. 19.
  • [iOS, css] ios 16.4 transform 문제 (하이브리드앱) 광야클럽 앱을 보면 저렇게 카드 뒤집는 애니메이션이 있다 내가 개발하는 하이브리드앱에서도 저거랑 비슷하게 동작하는 부분이 있다. 그러던 어느 날... 누군가 ios 16.4로 업데이트를 했고 카드가 돌아는 가지만 화면을 절반으로 나눴을 때 오른쪽은 터치가 먹히고 왼쪽은 터치가 안 먹히는 이상한 현상이 일어난 것임 .card { perspective: 1000px; transition: transform 1s; transform-style: preserve-3d; } .frontCard { backface-visibility: hidden; transform: rotateY(0deg); } .backCard { backface-visibility: hidden; transform: rotateY(180de.. 공감수 0 댓글수 0 2023. 3. 29.
  • [리팩터링 2판] 2장 2장 리팩터링 원칙 리팩터링 적용 원칙에 대하여 2.1 리팩터링 정의 명사 : sw 와 같은 겉보기 동작은 유지한 채, 코드를 이해하고 수정하기 쉽오록 내부 구조를 변경하는 기법 동사 : sw 와 같은 겉보기 동작은 유지한 채, 여러가지 리팩터링 기법을 적용해서 sw를 재구성하다 그냥 코드 정리하는게 아닌 특정 방식을 따른 정리만이 리팩터링 리팩터링 동안에는 항상 코드가 정상 작동해야함. 따라서 '리팩터링 하다 코드가 깨졌다'라는 말은 없음. 재구성이라 봐야함 2.2 두개의 모자 개발 시 목적을 정확히 ! 기능추가냐 ? 리팩토링이냐 ? 테스트 코드 !!!!! 2.3 리팩터링 하는 이유 소프트웨어 설계가 좋아짐 : 코드 설계 파악 및 설계 용이, 중복 코드 제거함으로써 실수 감소 소프트웨어를.. 공감수 0 댓글수 0 2023. 2. 21.
  • [리팩터링 2판] 1장 리팩터링 2판 1장 정리 간단한 예시를 통한 리팩토링 인트로 느낌 이 책을 다 읽고 나면 js 테스트 코드 작성 관련 스터디를 해야할 것 같다 그것도 다 끝내면 꼭 그.. 프로젝트 리팩토링 해야지 1.3 리팩터링의 첫 단계 테스트 코드 작성의 필요성 리팩터링 후 항상 테스트 수행 조금 씩 변경 후 test, 피드백 주기 짧게, 하나의 리팩터링 끝나면 커밋 변수명을 명확히 ex. 함수 반환값 result 1.4 함수 쪼개기 함수로 추출 임시 변수는 최대한 제거 임시 변수 -> 질의 함수로 변경 (중첩함수) 이게 더 좋은 거였나? -> ㄴㄴ 나중에 중간 데이터 구조로 변경 하기 위함 최대한 기능을 쪼개야함 1.6 단계 쪼개기 1. 데이터 처리 (중간 데이터 구조 생성) 2. 데이터 출력 반복문을 파이프라인 .. 공감수 0 댓글수 0 2023. 2. 9.
  • [Android] Dialog에서 App 종료 시키기 SplashActivity 에서 dialog 생성 dialog = new UpdateDialog(SplashActivity.this, callback);​ UpdateDialog 생성자 - context 받아옴 public UpdateDialog(Context mContext) { super(mContext); this.mContext = mContext; } UpdateDialog에서 OwnerActivity 를 설정해줌 setOwnerActivity((SplashActivity)mContext); UpdateDialog 에서 getOwnerActivity 함수를 통해 App 종료 시킴 ActivityCompat.finishAffinity(getOwnerActivity()); System.exit(0); 공감수 0 댓글수 0 2021. 9. 6.
  • [React] setState, props 지금까지 Vue.js 프로젝트만 해오다 React 프로젝트에 투입되어서 리액트 실습! React ❤️ Immutable.js – 리액트의 불변함, 그리고 컴포넌트에서 Immutable.js 사용하기 | VELOPERT.LOG 이 포스트는 React 에서는 불변함 (Immutability) 를 지키며 상태 관리를 하는 것을 매우 편하게 해주는 라이브러리 Immutable.js 에 대해서 알아보겠습니다. 서론 리액트를 사용하신다면, Immutability 라는 velopert.com 윗 글에 나온 예시 코드를 활용했다 모든 변수명이 users인게 헷갈려서 변수명을 임의로변경했다 import React, { Component } from 'react'; import UserList from.. 공감수 0 댓글수 0 2021. 8. 31.
  • [Android] Context 컨텍스트 관련 잘 정리된 글을 보고 간단히 정리 Understanding Context In Android Application What is Context? As there are different types of context in Android, we as an Android Developer often get confused about which context to use at which place. So let’s understand what are those, how to use those and when to use which one. blog.mindorks.com Context 컨텍스트는 무엇인가 어플리케이션의 현재 상태 activity, application 관련 정보를 가짐 - res.. 공감수 0 댓글수 0 2021. 8. 20.
  • [Backend] JPA 정리 JPA(Java Persistent API) 자바의 클래스와 DB의 테이블을 매핑하는 기술 객체지향적으로 데이터를 관리 -> 비즈니스 로직에 집중, 객체지향 개발 가능 신기했던 작명==SQL 기능 1) find / select Article findByArticleid(int articleId); select * from article where articleid = articleId; 이 기능을 한다 여기서 또 얘가 이상한게 FindByArticleId 로 id의 i를 대문자 I로 쓰면 article_id로 인식함; 2) order by Article findFirstByEmailOrderByArticleidDesc(String email); findFirst -> limit 1과 같음 OrderByA.. 공감수 0 댓글수 0 2021. 8. 20.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.