반응형

분류 전체보기 492

SpringBoot # Controller-Service-DAO-mapper.xml

Mybatis의 기능 DB 커넥션을 맺고 끝는 것을 자동화해줌. SQL 쿼리를 실행 및 결과를 DTO에 알아서 세팅해줌. mapper.xml DAO의 요청에 따라 사용할 SQL 쿼리문을 작성하는 곳. .xml에 정의된 이름과 DAO인터페이스에 정의된 메소드 이름이 같은 것 끼리 매핑된다. DAO(Data Access Object) 실제로 DB에 접근해 데이터를 조회 및 조작하고 그 결과값을 리턴해 준다. .xml에 정의된 이름과 DAO인터페이스에 정의된 메소드 이름이 같은 것 끼리 매핑된다. DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용. DTO(Data Transfer Object). Request와 Reponse가 일어날 때 DTO의 틀에 맞게 데이터를 담아 Service나 Cont..

JPA의 Entity와 Repository

Entity 데이터 베이스에 저장하기 위해 정의한 클래스. Domain이라 생각하면 된다. 유저가 직접 정의한 클래스다. RDBMS의 테이블을 객체화시킨 것과 같다. 따라서 테이블의 이름과 컬럼 정보들을 가지고 있다. @Id PK값으로 두려는 변수를 선언. @GeneratedValue 어노테이션을 통해 Id값을 어떻게 생성할지에 대해 설정할 수 있다. @Table 별도 이름을 가진 DB 테이블과 매핑하며, @Table(name=" ")와 같은 방식으로 사용한다. 풀어서 설명하자면, 기본적으로 @Entity로 선언된 클래스 이름은 실제 DB의 테이블 명과 일치하는 것을 매핑함. 따라서 @Entity의 클래스 이름과 DB 테이블 명이 다른 경우에 매핑할 때 사용한다. @Column @Column(name="..

자주 사용되는 Lombok 어노테이션

Lombok이란? VO, DTO, Entity 등을 쉽게 작성할 수 있도록 도와주는 라이브러리. 코드를 깔끔하게 작성할 수 있어 가독성이 좋아진다. 하지만 제대로 알지 못한채 사용하게 되면 예상치 못한 문제가 발생할 수 있다. @Getter @Setter 자동으로 get, set 메소드를 생성해준다. 기본적으로 public으로 생성된다. AccessLevel 옵션을 사용하여 접근권한 설정을 달리해줄 수 있다. @NoArgsConstructor 파라미터가 없는 기본 생성자를 만들어준다. 이 역시 AccessLevel 옵션을 사용하여 접근권한 설정을 달리해줄 수 있다. 이 때 PROTECTED로 설정하여 안전성을 보장해주자. 예) access = AccessLevel.PROTECTED @Tostring to..

백준 # Python_1100_하얀 칸

1100번: 하얀 칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net 문제 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오. 입력 첫째 줄부터 8개의 줄에 체스판의 상태가 주어진다. ‘.’은 빈 칸이고, ‘F’는 위에 말이 있는 칸이다. 출력 첫째 줄에 문제의 정답을 출력한다. 예제 입력 1 .F.F...F F...F.F. ...F.F.F F.F...F. .F...F...

# 3. APS/백준 2021.09.14

Upstream과 Downstream/Origin과 Upstream

Upstream과 Downstream 두 개의 레포지터리의 관계에 따라 정의되는, 즉 상대적인 개념이다. Upstream은 하천의 윗부분(상류)을 뜻하며 물줄기의 원천이 되는 소스를 뜻한다. 나는 A라는 레포지터리를 가지고 있고 다른 레포지터리 B의 내용을 pull받았다고 하자. 그럼 나의 레포지터리 A가 downstream, 레포지터리 B가 upstream이 된다. 또, 내가 다른 레포지터리를 fork하게 되면 fork받아 생성한 내 레포지터리가 downstream, 다른 레포지터리가 upstream이 된다. 따라서 한 개의 upstream에 여러 downtream이 존재할 수 있다. 이와 같은 이유로 원격 저장소를 fork받았을 땐 보통 로컬 저장소(주소)의 이름인 origin과 대비되도록 upstr..

기타/🚘 Git 2021.09.13

네트워크 패킷 분석 무료툴 # Fiddler(피들러)와 Wireshark(와이어 샤크)

네트워크 패킷 분석툴의 목적 클라이언트와 서버간의 패킷을 캡쳐하여 데이터 송수신이 제대로 이뤄지고 있는지 확인할 수 있다. API을 콜 했을 때/성공 혹은 실패 여부와 파라미터를 한 눈에 파악할 수 있다. 무엇을 콜 하였는지 파라미터는 어떤게 들어갔는지 알 수 있고 reponse 결과도 볼 수 있다. 즉, 웹개발 시 화면상으로만 보았을 땐 오류가 났는지 안났는지 확인하기 어렵기 때문에 프론트 레이어를 다 찍어주는 패킷 분석툴을 쓰는 것! 그래서 모든 기능을 일일이 실행해보지 않고도 에러 여부를 알 수 있다. 따라서 피들러 혹은 와이어 샤크는 웹 개발 팀의 필수 툴이다. (개발자들 끼리의 "피들러 떠봤어?"라는 말은 피들러를 사용하여 확인해봤냐는 이야기.) Fiddler HTTP 메세지 캡처 기능과 Pro..

📜 TIL 2021.09.13

SSH란?

SSH Secure Shell Protocol 다른 컴퓨터에 접속할 때 쓰는 것. 네트워크 프로토콜 중 하나. 컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜. 주로 데이터 전송과 원격 제어 시 사용한다. 데이터 전송의 예) 원격 저장소인 깃헙 소스 코드를 원격 저장소인 깃헙에 푸쉬할 때 SSH를 활용해 파일을 전송. 원격 제어의 예) AWS 클라우드 서비스 AWS의 인스턴스 서버에 접속하여 해당 머신에 명령을 내리기 위해 SSH를 통해 접속. 다른 프로토콜의 종류에는 FTP ,Telnet 등이 있지만 SSH를 사용하는 이유는 보안때문이다. SSH는 보안적으로 훨씬 안전한 채널을 구성한 뒤 정보를 교환하기 때문에..

📜 TIL 2021.09.11

RESTful한 URL이란?

1. 소문자 사용. 카멜방식이 아닌 소문자를 사용하여 작성. 잘못된 예 https://pythontoomuchinformation.tistory.com/users/postLikes 올바른 예 https://pythontoomuchinformation.tistory.com/users/post-likes 2. 언더바를 대신 하이픈 사용. 잘못된 예 https://pythontoomuchinformation.tistory.com/users/post_likes 올바른 예 https://pythontoomuchinformation.tistory.com/users/post-likes 3. 마지막에 슬래시를 포함하지 않는다. 슬래시는 계층을 구분하는 것으로, 마지막에는 사용하지 않는다. 잘못된 예 https://py..

📜 TIL 2021.09.10

서버 이중화(HA- High Availability) 솔루션 및 로드 밸런싱(Load Balancing)

HA(High Availability)를 간단히 한국어로 직역을 하자면 “고가용성”이다. 고 가용성이란 “가용성이 높다”는 뜻으로서, “절대 고장 나지 않음”을 의미한다. 즉, 네트워크나 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다. 최근 들어 기업의 모든 비즈니스가 디지털화 되면서, 고 가용성이 보장된 서비스를 제공해야 하는 케이스가 점점 많이 발생하고 있다. 또한 단 한번의 예상치 못한 서버 다운은 기업 신용 실추 등의 문제와 직결되기 때문에 손실이 매우 크다. 여담으로 HA설계를 하느냐 안하느냐에 따라 주니어 개발자와 시니어 개발자를 나누는 기준이 되기도 한다고 한다. 서버 이중화 서버 이중화란 운영중인 서비스의 안정성을 위해 각종 자원을 이중 또..

📜 TIL 2021.09.07

Hadoop의 다양한 기능/서브 프로젝트들 (하둡 에코시스템)

하둡 에코시스템이란? Hadoop EcoSystem 빅데이터는 수집, 정제, 적재, 분석, 시각화의 여러 단계를 거친다. 이 단계를 거치는 동안 여러가지 기술을 이용하여 처리되고, 이 기술들을 통틀어 빅데이터 에코 시스템(Bigdata Eco System)이라고 한다. 하둡의 코어 프로젝트가 HDFS와 MapReduce인 것이고 이 외에도 다양한 서브 프로젝트가 많이 존재한다. 이러한 서브 프로젝트들의 모임을 하둡 에코시스템(Hadoop EcoSystem)이라고 한다. Hadoop의 코어 프로젝트 : HDFS(분산데이터저장), MapReduce(분산처리) Hadoop의 서브 프로젝트 : Workflow관리, 데이터 마이닝, 분석, 수집, 직렬화 등 수집기술 수집기술은 빅데이터 분석을 위한 원천 데이터를 ..

반응형