전체 글 103

[모든 개발자를 위한 HTTP 웹 기본] IP

본 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의 내용을 정리한 글입니다. IP(Internet Protocol : 인터넷 규약) 복잡한 인터넷 망에서 한국에서 미국으로 Hello, world!라는 메시지를 보내야 한다. 어떻게 클라이언트 ( 보내는 사람) 과 받는 사람을 구체적으로 콕 집어서 정확히 보낼 수 있을까?? 바로 IP 주소를 통해서이다. 아래와 같이 클라이언트와 서버는 각자의 고유한 IP주소를 가지고 있어서 '메세지를 보내줘'라고 할 때 누가 받는지를 지정할 수 있다. IP의 역할 지정한 IP 주소에 데이터 전달 패킷(Packet) 단위로 데이터 전달 그렇다면 패킷(Packet)은 뭘까?? 위키 백과사전을 찾아보면 Packet은 '컴퓨터 네트워크가 전달하는 데이터를 형식화한..

HTTP/HTTP강의 2022.09.19

멀티 모듈 프로젝트 구조와 설계( 2 ) - 김대성님

출처 : 인프콘 2022 이전 정리 : https://beetr.tistory.com/67 멀티 모듈 프로젝트 구조와 설계( 1 ) - 김대성님 출처 : INFCON 2022 https://www.inflearn.com/course/infcon2022/unit/126503?tab=curriculum 학습 페이지 www.inflearn.com 이 글은 단순 정리를 위한 요약이며, 문제가 될 시 삭제하겠습니다. 왜(Why) 멀티 모.. beetr.tistory.com 멀티 모듈은 어떤 기준으로 나뉘어야 할까?? 결론부터 말하면 경계라고 불리는 바운디드 컨텍스트를 생각해보면 어떨까 한다. 특정 Context 문맥하에서 완전한 의미를 갖는 경계의 기준을 잘 나누는 게 멀티 모듈 프로젝트를 설계할 때도 무엇보다 ..

세미나/인프콘 2022.09.13

멀티 모듈 프로젝트 구조와 설계( 1 ) - 김대성님

출처 : INFCON 2022 https://www.inflearn.com/course/infcon2022/unit/126503?tab=curriculum 학습 페이지 www.inflearn.com 이 글은 단순 정리를 위한 요약이며, 문제가 될 시 삭제하겠습니다. 왜(Why) 멀티 모듈 프로젝트 구조가 중요할까요?? 아키텍쳐는 프로젝트 초기에 이뤄져야 하는 일련의 설계 결정이다. 아키텍쳐는 요소의 구조와 그 관계에 관한것이다. 를 바꿔보자 멀티모듈 프로젝트는 프로젝트 초기에 이뤄져야 하는 일련의 설계 결정이다. -> 리스크를 줄이기 위한 시작 멀티모듈 프로젝트는 요소의 구조와 그 관계에 관한것이다. -> 나중에 변경하기 어렵다. 모든 서버들이 참조하는 Common이란 모듈이 있다. 프로젝트 초기에는 운..

세미나/인프콘 2022.09.12

Linux - 수행시간 측정 명령어, 프로세스 작업 명령어

time - 수행시간 측정 명령어 time 명령어는 시스템이 가지고 있는 모든 명령어나 프로그램이 수행하는데 얼마나 많은 시간이 소요되는지를 측정하는 명령어다. time 명령어를 사용하면 수행 중 수행시간을 알아 볼 수 있는 명령이다. 사용법 time [ 옵션 ] [명령어] 형식으로 사용할 수 있다. 글씨가 너무 작게 보여서 리눅스 공부할거면 직접 man 명령어를 활용해보면 좋겠다. 실제 사용 예시 프로세스의 상태 정보를 출력하는 ps -lf 명령어의 수행 시간을 측정해봤다. 위의 사용법처럼 time + 명령어 ( ps -lf) 를 사용해봤다. jobs - 프로세스 작업 명령어 jobs는 현재 시스템에서 동작중인 작업을 출력하는 명령어다. 백그라운드에서 수행하는 job (일) 들의 목록을 보여준다라고 생..

카테고리 없음 2022.09.09

Spring에서 인터페이스를 사용하는 프로그래밍(programming to interface)이 좋은 이유

Java의 Interface는 구현 클래스가 준수해야 하는 계약을 정의한다. 따라서 클래스가 의존 관계를 구현하는 Interface에 의존한다면, 해당 의존 관계의 구현을 변경하더라도 의존 중인 클래스를 변경할 필요가 없다. 이런 식의 의존 중인 클래스가 의존 관계가 구현하는 Instance로 의존성을 만드는 설계 원칙을 '인터페이스를 사용하는 프로그래밍' (programming to interface)이라 한다. 이 방식은 의존 중인 클래스와 의존 관계 사이에 느슨한 결합을 만든다. 의존 관계 클래스가 구현하는 인터페이스를 의존 관계 인터페이스 (dependency Interface) 라고 부른다. 말이 좀 어려운데 그림을 통해서 써보겠다. MemberService가 1번처럼 JDBC를 사용하다가 2번..

Spring 2022.09.04

프로세스 관리 명령어 - 1

프로세스(Process)는 실행중인 프로그램을 말한다. 보통 프로그램과 프로세스에 대해서 나중에 헷갈릴 수 있으니까 간단히 적자면 Program은 실행파일이다. Program의 실행에 필요한 입력 데이터를 묶어서 Task라고 하는데 이 작업이 컴퓨터에서 실행시키게 되면 커널(kernel)에 등록되는데 커널에 등록된 작업을 프로세스라고 한다. 프로세스 정보 내용 PID 고유의 Process의 ID 번호 UID, GID 프로그램을 실행시킨 사용자 프로세스 상태 실행중(R), 중지중(S), 종료불가한 중지상태(D), T-sttopped/traced, Z-zombie 등 우선 순위 (C) Process의 우선 순위 부모 프로세스 (PPID) 자신의 프로세스를 실행시킨 부모 프로세스 프로세스는 백그라운드와 포그라..

OS/Linux 2022.09.02

우아한테크 세미나 8월 애플리케이션 보안 백엔드 쪽 메모

출처 : 우아한 Tech Youtube 취약점 진단 VS 모의해킹 취약점 진단 모의 해킹 체크리스트 기반으로 항목별 취약점이 존재하는지 파악하는 작업 실제로 공격한다 가정하고 진행 위협이 될 수 있는 취약점을 찾아내고, 이를 통한 공격이 가능한지를 확인하는 수준의 작업 대상 시스템에 대한 정보를 수집 대상 시스템에 대한 취약점을 찾아내고, 이를 통한 공격 시나리오 수립 권한 획득, 권한 상승, 정보 탈취, 시스템 장악, 시스템 파괴, 장애 유발 등 취약점을 통해 어떤 공격이 가능한지 구체적으로 확인하는 작업 주관적인 최근 서비스 개발 트렌드 서버 부하를 줄이기 위해 클라이언트에서 처리하는 기능이 증가 서버에서 처리해야 하는 기능을 클라이언트에서 처리해서 취약점 발생 효율적인 개발을 할 수 있게 도움을 주..

JPA - JPA의 수행 순서와 Entity의 생명주기, Context의 특징 실험.

기본적인 영속성의 개념은 지난 글에 적어 놓았다. https://beetr.tistory.com/59 JPA의 영속성 기본 개념 & 엔티티 매니저 영속성 ( Persistence ) 영속성이란 사전의 단어대로 영원히 존재하는 속성이다. 보통 데이터베이스(DB)를 접해봤다면 한번 쯤은 들어봤을 말이다. JPA에서는 영속성 컨텍스트라는 개념이 중요하다. beetr.tistory.com JPA는 객체와 관계형 데이터베이스의 데이터를 자동으로 연결해주는 ORM이다. 그럼 그 일을 누가 해줄까? 엔티티 매니저(EntityManager)가 영속성 컨텍스트( Persistence Context )에 저장한다. 대략적으로 이해한 부분을 기억하기 쉽게 그림으로 표현해 봤다. 팩토리는 엔티티 매니저를 고용한다. (만든다...

JPA 2022.06.26

Intellij 환경설정 - Menus and Toolbars - Main Menu

인텔리 J 에서 어느순간 이 화면이 안나온다....다시 찾아보려고 해도 검색을 잘 못하는 건지 나오질 않아서 직접 머리 깨가면서 찾아보려고 하는 김에 정리하는 글 File -> Setting Appearance & Behavior Menus and Toolbars 로 들어가면 나오는 설정화면 Main Menu Main Menu는 화면 상단에 해당하는 메뉴들이다. Main Toolbar 기본 적으로 숨겨져 있다. 보여지게 만들면 이 부분이라고 한다. Editor Tab Popup Menu 이 부분은 탭 (아래 사진)을 우클릭 했을 때 나타나는 팝업 메뉴다. 아래의 설정에서 Editor Close Actions를 지워봤더니 탭을 우클릭 했을 때 닫는 버튼이 모조리 사라져 버렸다. Project View Po..

Intellij/메뉴 2022.06.25