분류 전체보기510 비전공자를 위한 이해할 수 있는 IT 지식 을 읽고, 나는 개발자를 준비한지 약 6개월이 된 시점에 이 책을 접하게 되었다. 개발자 현업의 경험이 없고, 혼자 공부한 내가 어디까지 알고 있는지 궁금했으며, 빠진 내용이 없는지 알기 위해 읽었다. 이 책은 10개의 챕터로 나누어져있다. 각 장마다 어떤 주제를 다룰지에 대해 나타나있고, 아예 개발에 경험이 없다면 처음부터 순서대로 읽어야 이해가 된다고 생각한다. 보통 다른 도서나 블로그에서는 조금 딥한 내용으로 예시를 들어주는 경우가 많은데, 이 책은 책의 제목처럼 실 생활에서 개발자가 어떻게 의사소통하는지, 어떤 말을 주고받는지에 대한 예시가 나와있어 쉽게 이해할 수 있었다. 가장 중요하게 전달하고 내가 조금 더 자세히 보았던 부분은 4장의 API 부분이다. ( 내가 백엔드를 준비하고 있어서 ..) 포트폴리오.. 2023. 1. 3. Ehcache 를 사용한 Cache 이용해보기 쇼핑몰 개인프로젝트를 만드는 중, 캐시에 대한 궁금증이 생겨 적용을 해보고 싶은 계획이 있었다. 대부분 캐시를 사용하면 redis 를 사용하는 것을 봐와서 나도 redis를 도입해야 하나? 라는 생각을 했다. Ehcache 를 적용한 이유는 별도의 서버를 사용해서 생길 수 있는 네트워크 지연이나 단절과 같은 이슈가 없이 사용이 가능하며 ( Spring 내부적으로 동작 ) 서버 애플리케이션과 라이프사이클을 같이 하므로 사용하기 쉽기 때문에 선택했다. 도중에, "개발바닥" 유튜브에서 포털사이트의 뉴스 등에 EhCache 를 많이 사용한다는 것을 듣고 어떤 캐시방식인지 궁금해 찾아보게 되었다. c2c쇼핑몰이라고 하면, 상품을 클릭하면 나오는 상세페이지에 사용할 수 있지 않을까 생각했다. 이유는, 상품 사진이 .. 2023. 1. 2. mysql - case when then end (조건문) select *, ( case when CustomerSex = 0 then 'man' when CustomerSex = 1 then 'woman' else '미지정' end ) as '성별' from customer; ' 성별 ' 이라는 컬럼이 맨 마지막에 추가된다. 2023. 1. 2. object references an unsaved transient instance - save the transient instance before flushing 에러내용 에러원인 장바구니 컨트롤러 통합테스트 중 발생한 에러이다. JPA 연관 관계에 대한 문제로, 카테고리 DB 에 값이 없이 저장하려고 해서 발생한 에러로 확인했다. 에러조치 goods Entity 에서 카테고리 연관관계 매핑에 Cascade 를 추가한다. 카테고리는 다른 상품에서 사용할 수 있기 때문에 ALL 이 아닌 PERSIST 를 사용해서 저장할 때만 적용될 수 있도록 설정했다. @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) @JoinColumn(name = "category_id") private Category category; //카테고리(다대일) 2022. 12. 31. [CS] 네트워크 토폴로지 네트워크 토폴로지는 네트워크 설계를 할때 고려해야할 사항이다. 노드와 링크가 어떻게 배치되어있는지에 대한 방식이며 연결형태를 의미한다. 종류로는 트리, 버스, 스타,링, 메시 토폴로지가 있다. 트리 토폴로지는 나무의 뿌리 형태처럼 되어있다. 노드의 추가, 삭제가 쉬으며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼친다. 버스 토폴로지는 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유한다. 하나의 회선으로 설계되어 설치 비용이 적고, 신뢰성이 우수하며, 노드의 추가 삭제가 쉽다. 하지만, 스푸핑(악의적인 다른 노드에 전달) 이 발생할 가능성이 있다. 스타 토폴로지는 별 모양으로 중앙에 있는 노드에 모두 연결되어 있는 형태이다. 노드의 추가 삭제가 쉽고, 노드끼리의 충돌 가능성이 적으며 에러.. 2022. 12. 30. [CS] 처리량과 지연시간 네트워크 구축에 있어서 이라는 의미는, 많은 처리량을 처리할 수 있으며, 지연시간이 짧고 장애빈도가 적으며 좋은 보안을 갖춘 네트워크를 의미한다. 처리량은 링크를 통해 전달되는 단위 시간당 데이터양을 의미한다. 단위로는 bps(bits per second) 를 사용하며, 초당 전송 or 수신되는 비트 수를 의미한다. 처리량은 사용자들이 많이 접속할 때 커지는 트래픽, 발생하는 에러, 하드웨어 스펙 등의 영향을 받는다. 지연시간은 요청이 처리되는 시간을 의미한다. ( 어떤 메시지가 두 장치 사이를 왕복하는데 걸린 시간 ) 2022. 12. 30. @WebMvcTest 403 응답 처리 에러내용 java.lang.AssertionError: Status expected: but was: 에러원인 카테고리 생성에 관련된 controller 테스트 중 403 에러가 발생했다. 해당 컨트롤러는 ADMIN 권한을 가진 사람만 생성할 수 있어서, 아래와 같이 지정해주었는데도 403에러가 발생했다. @WithMockUser(roles= "ADMIN") @WebMvcTest 는 슬라이스 테스트로, 모든 사람들이 SecurityConfig 를 필요로 하지 않을 수 있다.따라서, 스프링에서는 사용할 사람은 따로 설정해 사용하라고 한다. 기본 시큐리티 설정으로 되어있어, 따로 시큐리티 설정이 필요했다. 에러조치 아래와 같은 Config 파일을 만들어준다. @EnableWebSecurity public c.. 2022. 12. 28. [CS] 로드 밸런싱(Load Balancing) 로드 밸런싱이란, 둘 이상의 CPU , 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. 웹 사이트에 접속하는 트래픽수가 급격히 증가하면서, 1대의 서버로는 감당이 안된다. 대응하기 위해, 하드웨어의 성능을 높이거나(Scale-up) 여러대의 서버(Scale-out) 에게 트래픽을 분할 시키는 것이었다. 하드웨어의 성능 향상은 가격이 너무 비싸기 때문에 보통 서버를 여러대 추가한다. 해당 장점은, 비용뿐만 아니라, 무중단 서비스를 제공할 수 있다. 서버가 여러대로 늘어나면 균등하게 분배해야 하는데 이것을 로드 밸런싱이 해준다. 로드 밸런서는 클라이언트와 서버 사이에 위치시켜, 부하가 일어나지 않게 여러 서버에 분산시켜 준다. 로드 밸런서가 서버를 선택하는 방식은 아래와 같다. 1. 라운드 .. 2022. 12. 27. 최대공약수(gcd) , 최소공배수(lcm) https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위의 문제 풀이를 위해 최대공약수와 최소공배수의 로직을 작성 static int gcd(int a, int b) { if (a % b == 0) { return b; } return gcd(b, a % b); } static int lcm(int a, int b) { return a*b / gcd(a,b); } 2022. 12. 27. 이전 1 ··· 14 15 16 17 18 19 20 ··· 57 다음