전체 글 (106) 썸네일형 리스트형 [보안/아키텍처] 현대 권한 제어 모델 3대장 비교: RBAC vs ABAC vs ReBAC Admin 사이트 개발 중 확실하게 알고싶은 개념!!관리자 기능과 관련해서는, 관리자 사용자 데이터와 역할 기반 접근 제어(RBAC)는 Admin 백엔드에서 관리하고, Server의 admin 서비스는 OAuth 인증만 담당하도록 구성하는 것을 제안합니다. 이렇게 하면 admin 서비스의 복잡도를 낮추는 동시에 두 시스템을 더욱 유연하게 운영할 수 있습니다. 서비스가 복잡해질수록 "A가 B 데이터에 접근 가능한가?"를 판단하는 로직은 기하급수적으로 복잡해집니다. 이를 해결하기 위해 사용되는 핵심 접근 제어 모델 3가지를 핵심 개념부터 장단점, 적합한 유스케이스까지 한눈에 비교해 보겠습니다.1. 한눈에 보는 핵심 차이점구분RBAC (역할 기반)ABAC (속성 기반)ReBAC (관계 기반)판단 기준역할 .. [Tucker의 Go 언어 프로그래밍] 06. 산술 연산자 6.1 산술 연산자숫자 연산을 하는 연산자. 사칙 연산, 비트 연산, 시프트 연산이 속함.6.1.1 연산의 결과 타입Go 언어에서 모든 연산자의 각 항의 타입은 항상 같아야 함. (시프트 연산은 예외)연산의 결과 타입도 인수 타입과 같음. 즉 정수 타입과 정수 타입을 더하면 같은 정수 타입이 반환되고, 실수 타입에서 실수 타입을 나누면 실수 타입이 반환 됨. 나머지 연산은 정수 타입만 가능.6.1.2 비트 연산자&, |, ^, &^는 비트 단위로 연산하는 비트 연산자. 정수만 피연산자가 될 수 있음. 비트 연산자는 각 비트 단위로 연산을 수행. 그래서 비트 연산을 위해서는 먼저 정숫값을 2진수로 표현한 뒤 계산 해야 함.& : AND 연산자| : OR 연산자^ : XOR 연산자. A^B 연산을 수행할 때.. [Tucker의 Go 언어 프로그래밍] 05. fmt 패키지를 이용한 텍스트 입출력 fmt 패키지는 구조화된 입출력을 제공하는 패키지. fmt 패키지가 제공하는 Print(), Printf(), Println() 함수로 표준 출력을 할 수 있음. 표준 입력을 제공하는 Scan(), Scanf(), Scanln() 함수로 값을 입력 받음5.1 표준 입출력5.1.1 fmt 패키지는 3가지 표준 출력용 함수를 제공Print(): 함수 입력값들을 출력Println(): 함수 입력값들을 출력하고 개행Printf(): 서식에 맞도록 입력값들을 출력5.1.2 서식 문자첫 번째 인수로 출력할 서식 입력. 서식은 출력할 내용과 서식 문자의 조합으로 만듦. 두번째 인수부터는 서식에 맞춰 출력할 값들을 넣어줌구분 설명%v데이터 타입에 맞춰 기본 형태로 출력%T데이터 타입 출력%t불리언을 true/false.. [Tucker의 Go 언어 프로그래밍] 04. 변수 4.1 변수란?package mainimport "fmt"func main() { var a int = 10 // a 변수 선언 var msg string = "Hello Variable" // msg 변수 선언 a = 20 // a값 변경 msg = "Good Morning" // msg값 변경 fmt.Print(msg, a) // msg와 a값 출력}Good Morning20프로그래밍에서 변수는 값을 저장하는 메모리 공간을 가리키는 이름4.2 변수 선언var 변수명 int = 초깃값 // 타입var는 변수의 영문인 variable의 약자로 변수 선언을 알리는 키워드package mainimport "fmt"func main() {.. [Tucker의 Go 언어 프로그래밍] 03. Hello Go World Go 언어 특징클래스 | 없다 | 클래스는 없지만, 메서드를 가지는 구조체를 지원한다.상속 | 없다 | 상속을 지원하지 않는다.메서드 | 있다 | 구조체가 메서드를 가질 수 있다.인터페이스 | 있다 | 상속이 없지만 인터페이스는 있다.익명 함수 | 있다 | 함수 리터럴 이라는 이름으로 제공한다.가비지 컬렉터 | 있다 | 고성능 가비지 컬렉터를 제공한다.포인터 | 있다 | 메모리 주소를 가리키는 포인터가 있다.제네릭 프로그래밍 | 없다 | 제네릭 프로그래밍을 지원하지 않는다.네임스페이스 | 없다 | 네임스페이스를 제공하지 않는다. 모든 코드는 패키지 단위로 분리된다.코드가 실행되기까지1. 폴더 생성2. .go 파일 생성 및 작성3. Go 모듈 생성 : go mod init 모듈 이름4. 빌드 : go bu.. [Tucker의 Go 언어 프로그래밍] 02. 프로그래밍 언어 정적 컴파일 언어 | 동적 컴파일 언어Go 언어는 정적 컴파일 언어이기 때문에 각 플랫폼에 맞는 실행 파일을 따로 만들어주어야 한다. 하지만 Go 내부 환경 변수만 바꿔서 다양한 플랫폼에 맞도록 실행 파일을 만들 수 있어야 비교적 쉽게 대응할 수 있다. 또 정적 컴파일 언어 답게 매우 빠른 실행 속도를 자랑한다.프로그램이 동작하려면 기계어로 변환되는 컴파일 과정이 필요한데 이 컴파일 과정을 언제 할 것 인가를 언어를 나누는 기준으로 삼기도 한다. 미리 컴파일을 해두면 정적 컴파일 언어, 사용할 때 컴파일하면 동적 컴파일 언어.약 타입 언어 | 강 타입 언어약 타입 언어는 규칙이 관대해 더 편하게 코딩할 수 있는 장점이 있는 반면 예기치 못한 버그를 발생 시킬 수 있다. 강 타입 언어는 사용하기 까다롭지만.. [Tucker의 Go 언어 프로그래밍] 01. 컴퓨터의 원리 1.1 비트의 탄생과 트랜지스터트랜지스터는 성질이 다른 2가지 실리콘, N형과 P형을 겹쳐 만든다. 예를 들어 NPN 트랜지스터는 N형 실리콘 사이에 P형 실리콘을 넣어서 만든다. 그래서 가운데 P형 부분을 베이스라 부르고 양쪽을 Emitter, Collector라고 부른다.킬로바이트 -> 메가바이트 -> 기가바이트 -> 테라바이트 -> 페타바이트 -> 제타바이트1 바이트 = 8 비트1 KB = 1,024 바이트1 MB = 1,024 KB1 GB = 1,024 MB1 TB = 1,024 GB1 PB = 1.024 TB1 ZB = 1,024 PB전구가 꺼진 상태를 0, 켜진 상태를 1 이라고 하면, 트랜지스터를 이용해서 0과 1 두 숫자를 표현할 수 있다. 0과 1 둘 중 하나의 숫자값을 나타내는 공간을 .. Prompt vs Context vs Harness vs Loop 1. 프롬프트 엔지니어링 (Prompt Engineering)"어떻게 질문해야 AI가 똑똑하게 답할까?"대유행 시기: 2022년 11월 ~ 2023년 초 (ChatGPT 출시 직후)[User Input] ──(최적화된 지시문/Few-Shot)──> [LLM] ──> [Output]ChatGPT가 세상을 흔들던 시절의 핵심 기술입니다. 모델의 무게(Weight)를 직접 파인튜닝하지 않고, 입력 텍스트(Prompt)의 구조, 페르소나, 출력 포맷, Few-shot 예시를 정교하게 설계하여 원하는 답을 유도하는 방식입니다.핵심 패턴: CoT(Chain-of-Thought), Role Prompting, Few-Shot Prompting한계: 아무리 프롬프트를 예쁘게 작성해도, AI 모델이 사내 DB 데이터나 .. 이전 1 2 3 4 ··· 14 다음