분류 전체보기

유닉스

파일 입출력

저수준 파일 입출력 파일 지시자는 파일 기술자 (file descriptor), int type 유닉스 커널의 시스템 호출을 사용해 파일 입출력 실행함 파일에 빠르게 접근 가능, 특수 파일도 읽고 쓸 수 있음 (바이트 단위로 파일 내용 다뤄서) 바이트 단위를 적당한 형태의 데이터로 변환하는 함수가 필요함 open, close, read, write, lseek, dup, dup2, fcntl, fsync 고수준 파일 입출력 파일 지시자는 파일 포인터 (file pointer) C언어의 표준 함수로 제공, 여러 형태의 데이터 형식 지원함 버퍼 단위로 읽고 쓰기 가능 fopen, fclose, fread, fwrite, fputs, fgets, fprintf, fscanf, fseek 파일 기술자 (file..

유닉스

유닉스 시스템 프로그래밍 개요

유닉스 시스템 도구 make, 명령행 인자 중요! 유닉스 기본 명령 로그인/로그아웃 telnet : 유닉스 시스템에 접속 telnet hanb.co.kr logout, exit : 유닉스 시스템에서 접속 해제 프로세스 관련 명령 ps : 현재 실행 중인 프로세스의 정보 출력 -ef : 모든 프로세스에 대한 상세 정보 출력 ex) ps / ps -ef / ps -ef | grep ftp kill : 프로세스 강제 종료 -9 : 강제 종료 ex) kill 5000 / kill -9 5001 파일/디렉토리 조작 pwd : 현재 디렉토리 경로 출력 ls : 디렉토리 내용 출력 -a : 숨김파일 출력 -l : 파일 상세정보 출력 ex) ls -ail : 파일의 모든 정보 출력 / ls -a : 간단 출력 / ls..

git

main이 안뜨는 상황

git pull이나 git fetch를 해주면 main이 생긴다. 로컬 브랜치 생성 후 push 해주면 원격 저장소에도 로컬 브랜치가 나타난다! The current branch gayoung has no upstream branch 오류 원격저장소에 대한 브랜치 설정을 안해줘서 나타남 깃에서 해결책 알려줌 To push the current branch and set the remote as upstream, use git push --set-upstream origin [브랜치명]

git

원격 저장소 파일 삭제

파일 삭제 git rm --cached -r "파일명(또는 폴더명)" cached를 넣지 않으면 로컬 저장소의 파일/폴더도 같이 삭제됨 commit, push 해주면 된다.

spring

[OAuth] 기존 테스트에 시큐리티 적용

시큐리티 옵션 활성화되면 인증된 사용자만 API 호출 가능함 기존의 API 테스트 코드들이 모두 인증 권한 없음 -> 테스트 코드마다 인증한 사용자가 호출한 것처럼 작동하게 수정 Gradle에서 전체 테스트 수행하는 것에서 오류남 -> Test에서 오른쪽 마우스, 전체 테스트 실행으로 하면 됨 1. CustomOAuth2UserService 찾을 수 없음 CustomOAuth2UserService를 생성하는 데 필요한 소셜 로그인 관련 설정값들이 없어서 발생함 src/test에 application.properties가 없으면 src/main에 있는 설정을 그대로 가져옴 이때 application-oauth.properties 설정은 가져오지 않음 (application.properties만 가져오기 때..

spring

[OAuth]네이버 로그인

네이버 API 등록 https://developers.naver.com/apps/#/register?api=nvlogin 애플리케이션 - NAVER Developers developers.naver.com 애플리케이션 이름, 사용 API, 사용 환경, 서비스 URL (http://localhost:8080/), callbackURL 등록 -> ClientID, ClientSecret가 생성됨 application-oauth.properties spring.security.oauth2.client.registration.naver.client-id=9V6XsAlBeeZKCnP4huO8 spring.security.oauth2.client.registration.naver.client-secret=7nbpN..

spring

세션 저장소로 데이터베이스 사용하기 - MySQL

기본적으로 세션은 실행되는 WAS의 메모리에서 저장되고 호출됨 세션이 애플리케이션 실행 시 실행되는 구조인 내장 톰켓의 메모리에 저장되어 있어 항상 초기화됨 == 배포할 때마다 톰캣이 재시작됨 2대 이상의 서버에서 서비스하고 있으면 톰캣마다 세션 동기화 설정을 해야 함 세션 저장소 톰캣 세션 일반적으로 기본으로 선택되는 방식 톰캣(WAS)에 세션 저장돼서 2대 이상의 WAS가 구동되는 환경에서는 세션 공유를 위한 추가 설정이 필요함 MySQL과 같은 데이터베이스 여러 WAS 간의 공용 세션 사용 가능한 가장 쉬운 방법 많은 설정이 필요 없지만 로그인 요청마다 DB IO가 발생해 성능 이슈 발생 가능 로그인 요청 많이 없는 백오피스, 사내 시스템 용도에서 사용됨 Redis, Memcached와 같은 메모리..

spring

어노테이션 기반으로 개선하기

같은 코드가 반복되는 부분을 어노테이션 기반으로 개선할 수 있음 IndexController에서 세션값 가져오는 부분을 메소드 인자로 세션값 바로 받을 수 있게 변경 @LoginUser 어노테이션 생성 package com.springAWS.config.auth; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Logi..

hahihi
'분류 전체보기' 카테고리의 글 목록 (23 Page)