분류 전체보기 87

객체지향 사실과 오해

현재 기억에 남는 부분들을 간단하게 적어보기로...  1. 객체는 협력하기 위해 존재한다.- 서로 협력하기위해 각각의 객체들마다 고유의 책임을 가지고있고 협력하기위해 메서드를 가진다. 2. 객체를 만들때 상태 중심이 아닌 객체의 행동을 중심으로 결정하자.-  객체의 행동은 협력에 참여하기위한 유일한 방법.-  상태 중심의 객체는 캡슐화에 저하 -> 메서드를 통한 데이터 변경이 아닌 필드값을 직접 조작해 변경을 할 확률이 큼. 3. 추상화란?- 단순화를 통해 복잡성 극복- 목적에 맞게 코드를 단순화 - 공통점을 취하고 차이점을 버리자.- 불필요한 세부사항을 버리자. 4. 객체는 그 객체만의 책임이 존재해야한다.- 서로 다른 책임을 가지고 있는 객체들의 협력 -> 객체지향 프로..

2024.04.17

화면상에서 권한별 동적 렌더링에대한 고민

사용자가 작성한 사용자 본인의 게시글 및 댓글 View에는 수정 ,삭제 버튼이 보여야한다. 현재 로그인해 접속해있는 사용자의 권한을 어떤방법으로 확인해 권한별로 동적 렌더링을 진행할지에대한 고민이 시작됬다. (이전 프로젝트에서는 ThymeLeaf를 사용해 서버에서 html을 만든다음에 브라우저에게 내려줘, Spring security 및 권한 연동이 간편했지만, 이번 프로젝트는 React를 사용해 이러한 고민이 들게되었다...) 자 그럼 어떤 방식으로 브라우저에게 지금 로그인해 접속한 유저가 해당 게시글 , 댓글을 작성했다고 알려 줄 수 있을까? 나는 2가지 방법을 고안했다. 1. BackEnd 에서 권한을 확인한 후 프론트엔드에게 동적 렌더링 여부를 알려준다. 2. FrontEnd 에서 최초 로그인시 ..

Axios를 이용해 BinaryFile Upload 하기

기존 MultiPart 를 Content-Type 으로 FormData를 이용해 이미지를 업로드하는 방법은 많이 존재하지만 Octet-stream을 이용한 binary file로 업로드하는방법의 글은 없어 작성해본다. https://kdh931228.tistory.cm/62 우선 알고있는대로 axios를 이용해 input Tag에 들어온 이미지를 업로드를 해보자 현재 REST API Server Controller 상태다. header로 파일명을 받고 request에서 stream을 추출해 AWS S3로 업로드를 진행한다. Front로 돌아와 React에서 Input의 onChange를 이용해 Axios로 Post요청을 보내자. 현재 서버에서는 stream만 받고있으므로 Content-Type을 필히 o..

JWT Token, Cookie ? LocalStorage ?

요즘은 한창 프론트엔드 진행중이다. 로그인 기능을 개발하며 드디어 다시 JWT에 관해 고민하게되었다. 꽤 단골주제이긴한데, 넘겨받은 JWT 토큰을 쿠키에 저장할지, 로컬 스토리지에 저장할지다. 우선, 쿠키와 로컬스토리지 각각의 장단점부터 파악해봤다. Cookie 장점 간단한 데이터파일로 서버와 클라이언트가 쉽게 주고받을 수 있다. 단점 저장용량이 작고, 보안에 취약하다. ( 서버와 통신하며 주고받는 구간에서 탈취의 위험이 존재함 ) Local Storage 장점 클라이언트측에서 저장만하기때문에 쿠키에비해 보안 이점이있다. 브라우저를 종료해도 데이터는 남아있는다. (반영구적) 단점 모든 브라우저가 지원하지는 않는다. ( Internet Explorer 7 이하 버전은 지원하지않는다.... ) 클라이언트 즉..

env

변수 설정하기 프로그래밍 언어처럼 쉽게 쉘 변수를 만들 수 있다. 하지만 해당 세션에서만 등록된다. 새로운 터미널을 열면 그 세션에서의 변수는 찾을 수 없다. 이렇게 쉘 세션 변수와 글로벌 변수가 있는데 어디에서든 모든 하위 세션에서 존재하는 변수를 환경 변수라 한다. 환경 변수 등록하기 export를 통해 환경 변수를 등록, printenv로 환경 변수를 확인할 수 있다. "alias" 내가 원하는 명령어를 단축키로 담을 수 있다. 이미 있는 명령어에 여러 명령을 합쳐 명령어를 더 개선 할 수 있다.

카테고리 없음 2024.01.22

권한 변경

"chmod" [chmod mode file] u: 현재 사용자의 권한을 수정 g: 해당 그룹의 권한을 수정 o: 그 외 외부 사용자 권한을 수정 a: 모든 사용자 권한을 수정 +: 해당 권한 추가 -: 해당 권한 삭제 =: 해당 권한으로 변경 e.g. drwxrw-r-- 의 test.txt란 파일이 있을때 chmod u-x test.txt -> drw-rw-r-- 로 변경 drwxrw-r-- 의 test.txt란 파일이 있을때 chmod a=r test.txt dr--r--r-- 로 변경 "su" [su - 사용자명] 현재 터미널에서 사용자 변경 - 없이 su 사용자명 입력시 디렉토리 변경없이 현재 디렉토리에서 사용자 전환 "sudo" root user 사용자들의 권한을 삭제하거나 수정할 수 있다. s..

공부/Linux 기초 2024.01.21

grep

"grep" 파일에서 해당 패턴과 일치하는 곳을 찾아준 뒤 출력해 준다. find와 헷갈리지 말자 find는 단순 파일명만 찾아준다. -i 옵션을 이용해 대소문자 구별 없이 검색가능. -w 옵션을 이용해 정확히 일치하는 패턴만 검색가능. -c 옵션을 이용해 해당 패턴으로 몇 개가 검색됐는지 확인 가능. -A, -B 옵션을 통해 검색 패턴 다음, 이전행 확인 가능 After, Before 숫자를 적어 몇 행을 출력할 결정할 수 있다. -r 옵션을 이용해 재귀적으로 검색도 가능하다. 현재 디렉토리에서 하위 디렉토리 모두를 검색해 해당 패턴이 검색 후 출력한다. [] 정규식을 통해 검색도 가능. 정규 표현식 (Regex) '.'

공부/Linux 기초 2024.01.19