XML - XML의 문법과 구성요소
·
etc
TCP School의 XML 개요 글을 읽고 정리한 내용입니다. (http://www.tcpschool.com/xml/intro) XML이란? XML은 HTML과 비슷한 문자 기반의 마크업 언어이다. XML은 사람과 기계가 동시에 읽기 편한 구조로 되어 있다. HTML과 다른 점은 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로 만들어졌다는 것이다. 또한, XML 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있다. XML의 특징 XML은 다른 목적의 마크업 언어를 만드는 데 사용되는 다목적 마크업 언어이다. 다른 시스템끼리 다양한 종류의 데이터를 손쉽게 교환할 수 있도록 해준다. 새로운 태그를 만들어 추가해도 계속해서 동작하기 때문에 확장성이 좋다. 데이..
SSH - ssh no matching key exchange method found 에러 원인과 해결 방법
·
나의 에러 일지
ssh chanbin@192.168.0.100 Unable to negotiate with 192.168.0.100 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 원인 ssh6 까지는 제공해주던 key exchange method가 ssh7부터는 보안의 이유로 별도 옵션을 추가해주어야 한다. 해결 방법1 ssh에 접속할 때 key exchange method 옵션을 담아 접속한다. ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1 cha..
SQL - MySQL 워크밴치에서 Foreign key 삭제하기
·
SQL
실수로 중복으로 foreign key를 만들어버렸다. 중복된 foreign key를 지워보자! 아래 DDL을 확인해보면 following_id를 갖는 foreign key가 2개 있는 것을 알 수 있다. CREATE TABLE `follow` ( `id` bigint NOT NULL AUTO_INCREMENT, `follower_id` bigint NOT NULL, `following_id` bigint NOT NULL, PRIMARY KEY (`id`), KEY `follower_id` (`follower_id`), KEY `following_id` (`following_id`), CONSTRAINT `follow_ibfk_1` FOREIGN KEY (`follower_id`) REFERENCES `m..
Spring - Login(Security) 요청에서 한글 깨짐 문제 원인과 해결 방법
·
나의 에러 일지
배경 사이드 프로젝트를 진행중에 프론트 님께서 연락이 왔다. 로그인할 때 nickname에 한글을 사용해서 가입했는데 깨져서 나온다고한다! 그런데 다른 api 요청에서는 한글이 잘 나온다..읭? 왜 로그인 요청에서만 한글이 깨지지??? araboza 원인 다른 api와 로그인 api의 차이점이 있다. 로그인 요청은 Security에서 동작한다. 그리고 로그인 요청은 Dispatcher Servlet을 거치기 전에 수행된다! 그래서 Encoding Filter를 거치지 못해서 한글이 깨지는 것이라고 볼 수 있다. Encoding Filter란 Dispatcher Servlet 전에 설정한 인코딩으로 변환해서 컨트롤러에서 사용되게 해준다. @Slf4j @Configuration @RequiredArgsCon..
Spring - 회원 팔로우 기능 구현
·
Spring
배경 요즘 취업 준비때문에 정신이 없다. 틈내서 사이드 프로젝트를 진행중이다. 이번에 회원 팔로우 기능을 구현했다. 구현한 과정을 정리해본다. 개발 환경 Java 11 Spring 2.x JPA Gradle MySQL, Redis IntelliJ 요구사항 회원을 팔로우할 수 있습니다. 팔로우한 회원을 언팔로우 할 수 있습니다. 회원의 팔로워 수와 팔로잉 수를 확인할 수 있습니다. 관계 Member의 자기 참조 관계를 사용해서 Follow 엔티티를 구현했다. Follow는 Member를 참조하고 있고, 이를 통해서 팔로워(follower)와 팔로잉(following) 간의 관계를 나타내게 했다. 구현 Member @Entity @Getter @DynamicInsert @NoArgsConstructor(ac..
Network - TCP, UDP
·
Network
TCP/IP 4계층 모델 TCP와 UDP는 TCP/IP 4계층 모델을 기준으로 IP 프로토콜의 계층인 인터넷 계층의 상위에서 동작한다. 전송계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP와 4계층에서 동작하는 애플리케이션을 중개하는 역할을 한다. 4층 응용 계층 HTTP, DNS, FTP, ... 애플리케이션에 맞추어 통신 3층 전송 계층 TCP, UDP, ... IP와 애플리케이션을 중개해 데이터를 확실하게 전달 2층 인터넷 계층 IP, ICMP, ARP, RARP 네트워크 주소를 기반으로 데이터를 전송 1층 네트워크 접근 계층 Ethernet, wifi, ... 컴퓨터를 물리적으로 네트워크에 연결해서 기기 간에 전송이 가능하도록 함 TCP, UDP 특징 TCP는 3-way handshake ..
Spring - "urlTemplate not found. If you are using MockMvc did you use RestDocumentationRequestBuilders to build the request?" 원인과 해결 방법
·
나의 에러 일지
배경 이번 에러는 RestDocs를 생성하기 위한 통합 테스트 중 api에 path parameter를 문서화하는 과정에서 발생한 에러다. 아래는 에러가 발생했던 테스트 코드이다. @Slf4j @Disabled @Transactional @SpringBootTest @AutoConfigureMockMvc @AutoConfigureRestDocs @ActiveProfiles("test") public class BaseIntegrationTest { @Autowired protected MockMvc mvc; @Autowired protected Gson gson; } @Slf4j class FeedIntegrationTest extends BaseIntegrationTest { private final..
MySQL - 프로그래머스 164670. 조건에 맞는 사용자 정보 조회하기
·
SQL
[unrated] 조건에 맞는 사용자 정보 조회하기 - 164670 문제 링크 성능 요약 메모리: 0.0 MB, 시간: 0.00 ms 구분 코딩테스트 연습 > String, Date 채점결과 Empty 문제 설명 다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. Column name Type Nullable B..
Spring - Spring Boot 초기 데이터 설정 (data.sql)
·
Spring
프로젝트를 진행하면서 회원 가입할 때 선택할 수 있는 관심사 태그가 필요했다.Enum으로 관리할지 테이블로 관리할지 고민했었는데, 동적으로 관리해야 할 필요가 있어서 테이블로 관리하기로 했다.관심사 태그는 미리 지정되어 있기 때문에 데이터를 미리 넣어 사용하도록 해야 했다.그럼 Spring Boot에서 어떻게 초기 데이터를 설정하는지 알아보자 yml 설정spring: ... jpa: hibernate: ddl-auto: create defer-datasource-initialization: true sql: init: mode: alwaysspring.jpa.hibernate.ddl-auto: create:  Hibernate가 데이터베..
Spring - 통합 테스트에서 S3 Mock 객체로 S3 자원 아끼기
·
Spring
배경 파일 업로드를 위해 S3를 연결하고 테스트하는 과정에서 문제가 발생했다. S3에 테스트를 위해 생성한 파일들이 계속 저장되어 있던 것! 단위테스트는 Mock을 사용하기 때문에 문제가 없었지만 통합테스트에서는 모든 로직이 그대로 실행되서 저장되는 로직이 포함된 만큼 파일이 S3에 저장됐다. 프리티어를 사용하고 있었기 때문에 GET, POST를 요청을 보낼 수 있는 횟수 제한이 있었고 정신없이 테스트를 돌리다보니 GET 500회, POST 900회나 실행되고 있었다. 이 문제를 해결하기 위해 통합 테스트에서도 S3를 Mock으로 만들어 사용해야 했다. 구현 AwsS3Config 기존에 AmazonS3 Bean을 생성하기 위한 코드이다. 해당 Bean을 사용하지 않도록 Test용 Bean을 만들어서 사용..
Cold Bean
'분류 전체보기' 카테고리의 글 목록 (8 Page)