본문 바로가기

개발 이론59

프록시??? 스프링 AOP?? 트랜젝션?? (1) 이전 개인프로젝트때 동시성 해결하기 위해 aop와 Redisson을 활용하여 해결한 적이 있다. 그때 이때 aop 프록시와 동시성메서드 트랜젝션 프록시?라고 해야하나 아무튼 두개의 트랜 젝션의 레벨이 동일하여 내가 원하는 대로 호출이 안되는 상황이 있었다. 그래서 동시성 메서드 트랜젝션을 제거하였더니 잘 호출되었다. 이때는 동일한 레벨트랜젝션이라 무엇이 먼저 호출될지 모른다로 이해하고 끝났다... 근데 계속 프로젝트 하다보니... 프록시가 뭔데,,? 그게 트랜젝션이란 뭔상관이고, aop랑은 무슨 상관인데..? 라는 물음표들이 머리속을 꽉채웠다... 그래서 이번 기회에 차분히 정리해보려고 한다. 프록시 공부하기전 나에게 프록시 은 단순히 가짜객체의 느낌이었다.근데 공부해보니 그 방향보다는 프록시 이란 "대.. 2024. 2. 22.
[CS] 소스코드와 명령어 고급언어와 저급언어 고급언어 : 컴퓨터가 아닌 사람을 위한 언어 (프로그래밍 언어) 저급언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어 고급언어로 작성된 소스코드 실행시 저급언어(명령어)로 변환되어야함 저급언어에는 기계어와 어셈블리어가 존재한다. 기계어는 오직 컴퓨터만을 위한 언어로 0과 1로 이루어져있고 어셈블리어는 0과1로 표현된 명령어를 읽기 편한 형태로 변역한 언어 컴파일 언어와 인터프리터 언어 고급언어로 작성된 코드를 실행할떄 저급언어로 변환된다고 했는데 이때 크게 컴파일 방식과 인터프리트 방식이 있다. 1. 컴파일 언어 컴파일러에 의해 소스코드 전체가 저급언어로 변환되어 실행하는 고급언어이다. 대표적으로 C언어가 있다. 소스코드를 저급언어로 변환되는 과정을 컴파일이라고 하고 , 컴파일을 .. 2024. 2. 12.
[CS] 컴퓨터 구조 이제 취준취준취준...해야지... CS도 다시 복습해야지... 컴퓨터의 핵심 4가지 컴퓨터의 핵심 부품음 중앙처리장치 (CPU), 주기억장치(메모리), 보조기억장치, 입출력장치이다. 가장 큰 사각형은 메인보드라고 한다면 메인보드 안에는 - 시스템 버스(양방향 수직 화살표) - CPU (ALU(산술논리연산장치), 제어장치, 여러 레지스터) + 시스템버스와 연결 - 메모리 + 시스템 버스와 연결 - 보조기억장치 + 시스템 버스와 연결 - 입출력 장치(모니터, 키보드, 마우스) + 시스템 버스와 연결 ▶ 메모리(RAM) 현재 실행되는 프로그램의 명령와 데이터를 저장하는 부품이다. 메모리에 저장된 값의 위치는 주소로 알 수 있다. 다만 가격이 비싸 용량이 적고 , 전원이 꺼지면 저장된 내용을 잃는다. ▶ 중앙처.. 2024. 2. 11.
GitHub Actions 공부해보기 GitHub에서 제공하는 서비스로 build, test, deploy 파이프 라인을 자동화할 수 있는 CI와 CD 플랫폼이다. 깃 레포지토리에서 손 쉽게 CI/CD결과를 확인하고 관리할 수 있다. WorkFlow GitHub Actions의 기본 구성 단위이다. ".github/workflows/.yml"이라는 YAML파일에 정의된다. 워크플로우는 작업의 흐름으로 특정한 목적을 위한 푸시,풀 같은 이벤트 트리거, 환경, 기능들를 포함한다. 하나 코드 저장소에는 여러개의 워크플로우 파일이 존재할 수 있다. on: push: branches: - main - develop pull_request: branches: - backend/** on 속성을 통해 해당 워크플로우가 언제 실행될지 정의한다. 위의 예시.. 2023. 12. 31.
Github Actions CI 자동 빌드 및 테스트 하기 협업프로젝트 마지막 주에는 배포를 해야하는데.... 아는게 하나도 없어서 하나씩 공부중이다... 그래도 개인적으로 기본적 토대는 CI는 GitHub Actions로 하고 CD는 Jenkins를 통해 할 계획이다. 물론 AWS로 배포할 것이다. 그래서 오늘은 GitHub Actions로 빌드및 테스트하는 방법을 말할 것이다 CI/CD가 일단 뭔데? CI는 여러 개발자가 하나의 프로젝트에 같이 개발하게된다. 이때 발생하는 불일치를 최소화해주는 개념이다. 애플리케이션 변경 사항 반영할때 자동으로 빌드 및 테스트 되어 만약 테스트가 실패하거나 잘못된 코드가 있으면 공유되는 걸 방지한다. CD는 지속적 배포로 프로젝트의 변경사항을 가상환경에 자동으로 배포하는 것이다. 간단하게 말하자면 자동빌드 및 테스트 통해 코.. 2023. 12. 31.
AccessToken과 RefreshToken 조금더 자세하게 이전에 AccessToken과 RefreshToken에 대해서 블로그를 쓴적이 있지만 자세하게 쓰지 않은 것같아서.. 거기다가 부트캠프 멘토님이 토큰에 대해서 질문하시는데 머리로 어버법하다가 끝났다....ㅎㅎ 세션 기반 인증과 토큰 기반의 인증 차이점 세션 기반 인증과 토큰 기반 인증에 대해서 설명하기 이전에 HTTP에 대해 간단하게 이야기 해보자. HTTP는 stateless라는 특징이 있다. 즉 각 요청이 이전에 수행된 작업을 전혀 인식하기 못한다. 쉽게 이야기 하자면 내가 로그인하고 다른 페이지로 이동했을때 HTTP동작은 우리가 아까 로그인했는지 모른다. 그렇다면 사용자의 아이디와 비밀번호를 브라우저에 저장해놓고 매 요청마다 그 정보를 보내야할까?? 안된다. 일단 민감한 데이터가 클라이언트에 저장되.. 2023. 12. 30.
728x90