GET: 멱등성과 안전성이 모두 있다. POST: 멱등성과 안전성이 모두 없다. PUT, DELETE: 멱등성은 있지만 안전성은 없다. PATCH: 멱등성과 안전성이 없다. 멱등성 이란 ? 멱등성은 같은 요청을 여러 번 보내도 같은 결과가 나오는 특성을 말한다. - Post 요청의 경우 같은값을 요청시 항상 새로운 리소스가 생성 되기 때문에 멱등성이 없다고 할 수 있다. *보기엔 응답값이 같아도 실제로는 리소스가 추가 되기 때문에 안정성과 멱등성이 없다. - Get 요청의 경우 같은값으로 조회시 항상 같은 응답값이 나온다. - Put 요청의 경우 클라이언트가 리소스 A 를 PUT 메서드로 업데이트하면 해당 리소스는 변경되어 A'로 대체된다. 이후에 같은 요청을 다시 보내더라도, 서버는 이전과 동일한 리소..
분류 전체보기
https://www.naver.com 이 URL의 정보는 Protocol : https url : www.naver.com port : 443 이때 따로 포트를 선언하지 않는다면 브라우저에서 기본으로 설정된 값을 이용해 요청한다. HTTP - 80 / HTTPS - 443 주소(URL) 입력 www.naver.com < DNS주소(Domain Name System) DNS서버에 DNS질의를 보내면 DNS서버가 IP주소를 준다. 해당 IP를 가지고 TCP 연결을 시도한다. 왜 TCP ? 브라우저를 사용한다는것은 HTTP 통신을 하는것인데 HTTP통신은 TCP통신을 기반으로 하기 때문이다. 4. HTTP Request 를 WAS(Web Application Server) 서버에 보낸다 TCP 연결 설정 후..
Redis에 Object 를 저장 하기 위해서는 Serializer를 통해 직렬화해주어야한다. Object Mapper를 통해 > json으로 변환해서 저장 시켜주어야 한다. Spring에서는 Spring Data Redis 라이브러리를 이용하여 Redis에 접근할 수 있다. 이때 Redis를 접근할 수 있는 프레임워크로 Lettuce, Jedis가 있다. Lettuce는 별도의 설정 없이 이용할 수 있고, Jedis는 별도의 의존성 추가가 필요하다. 🛠️ Code 더보기 @Configuration public class RedisConfig { @Value("${spring.data.redis.host}") private String redisHost; @Value("${spring.data.redis..
postgresql bash 로 접속후 로그인 까지 완료 해준다. docker exec -it 도커네임 psql -U postgres -W postgres postgres select * from pg_tables; 일반적으로 이렇게 조회를 생각했었는데 이러면 시스템 테이블까지 조회가 됏었다. 생성된 테이블만 조회를 하려면 데이터테이블을 제외 해주고 조회를 한다. SELECT schemaname, tablename FROM pg_catalog.pg_tables WHERE schemaname != 'pg_catalog' AND schemaname != 'information_schema';
BooleanBuilder package study.querydsl.dto; import lombok.Data; @Data public class MemberSearchCondition { //회원명, 팀명, 나이(ageGoe, ageLoe) private String username; private String teamName; private Integer ageGoe; private Integer ageLoe; } Request 받을 DTO Wrapper 클래스(Integer)를 사용한 이유는 값이 null일 수도 있기 때문이다. public List searchByBuilder(MemberSearchCondition condition) { BooleanBuilder builder = new Bool..
BooleanBuilder BooleanBuilder는 Predicate를 구현하는 구현체이고 Predicate는 where절의 파라미터 타입입니다. 따라서 BooleanBuilder를 이용해 조건절을 추가한 뒤 where절에 전달하면되고, 이 부분을 동적으로 구현할 수 있습니다. 현재 Entity는 필드 수가 워낙 적어 경우의 수가 몇 가지 나오지 않으니 한 번 모두 테스트해보도록 하겠습니다. @SpringBootTest @Transactional class PlayerTest { @Autowired EntityManager entityManager; private JPAQueryFactory queryFactory; @BeforeEach void setup() { Team tottenhamHotspu..
순수JPA @Test public void findDtoJPQL() throws Exception { List result = em.createQuery("select new study.querydsl.dto.MemberDto(m.username,m.age) from Member m", MemberDto.class) .getResultList(); for (MemberDto memberDto : result) { System.out.println("memberDto = " + memberDto); } } 순수 JPA에서 DTO를 조회할 때는 new 오퍼레이션을 사용해야한다. DTO의 package path를 모두 적어줘야 한다. 생성자 방식만 지원한다. QueryDSL - 프로퍼티 접근 - 필드 접근 ..
이전글인 랜덤매칭 서비스에서 Discord봇을 이용하여 방을 생성하고 Url을 받아온다. https://soobysu.tistory.com/76 MatchingService 매칭 정원이 다 찻을경우 채널을 생성해준다. DiscordService DI Application.yml Application.yml 파일을 셋팅해준후 값을 넣어준다. discord key = 봇id guild id = 디스코드 서버id category = 디스코드 서버 내의 채널 카테고리 id 를 넣어주면 된다 아래의 사진은 디스코드 사용자설정 > 고급 > 개발자 모드를 활성화 해주면 나타난다 settingkey 얻는방법은 밑의 URL참고. https://appmaster.io/ko/blog/discord-bos-saengseong..