전체 글153 [알고리즘] 문자 찾기 문제 설명 1. 문자를 입력받는다. 2. 찾을 문자를 입력받는다. 3. 문자에서 찾을 문자가 몇개인지 리턴하면된다. 단, 문자의 대소문자는 구별하지 않는다. import java.util.Scanner; class Main { public int solution(String str, char t) { int answer = 0; str = str.toUpperCase(); t = Character.toUpperCase(t); for (char x : str.toCharArray()) { if(x==t) answer++; } return answer; } public static void main(String[] args) { Main main = new Main(); Scanner sc = new Sca.. ps 2022. 6. 27. [Spring Security] 프로젝트 생성 안녕하세요. 지금 부터 Spring Security에 대해서 알아보겠습니다. 제가 앞으로 진행하는 시큐리티에 대한 글은 다음과 같은 환경에서 진행됩니다. 개발환경 JDK 11 Gradle DB - mariaDB IDE - Intellij Spring Boot Spring MVC Spring Data JPA Thymeleaf Lombok window10 1) Spring Security란? Spring Security는 Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 Spring 하위 프레임워크입니다. Spring Security는 "인증" 과 "권한" 에 대한 부분을 Filter의 흐름에 따라 처리합니다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제.. Spring Boot/Spring Security 2022. 6. 25. [HTTP] HTTP 메서드 활용 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 • 쿼리 파라미터를 통한 데이터 전송 • GET • 주로 정렬 필터(검색어) • 메시지 바디를 통한 데이터 전송 • POST, PUT, PATCH • 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 • 정적 데이터 조회 • 이미지, 정적 텍스트 문서 • 동적 데이터 조회 • 주로 검색, 게시판 목록에서 정렬 필터(검색어) • HTML Form을 통한 데이터 전송 • 회원 가입, 상품 주문, 데이터 변경 • HTTP API를 통한 데이터 전송 • 회원 가입, 상품 주문, 데이터 변경 • 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax) 정적 데이터 조회 쿼리 파라미터 미사용 • 이미지, 정적 텍스트 문서 • 조회는 .. HTTP 2022. 6. 23. [HTTP] HTTP 메서드 HTTP API 만들기 요구사항 회원 정보 관리 API를 만들어라. • 회원 목록 조회 • 회원 조회 • 회원 등록 • 회원 수정 • 회원 삭제 API URI 설계 URI(Uniform Resource Identifier) • 회원 목록 조회 /read-member-list • 회원 조회 /read-member-by-id • 회원 등록 /create-member • 회원 수정 /update-member • 회원 삭제 /delete-member 처음 개발을 할 때 이렇게 생각을 한다. 회원 목록을 조회 하네? 회원 목록들이 쭉 나오는 화면이니깐 read-member-list 이런식으로 회원 한명을 조회 하네? /read-member-by-id 이런식으로 생각을 할 것 입니다. 근데 이것들이 좋은 URI 설.. HTTP 2022. 6. 23. [HTTP] HTTP 기본 HTTP HyperText Transfer Protocol 모든것이 HTTP • HTML, TEXT • IMAGE, 음성, 영상, 파일 • JSON, XML (API) • 거의 모든 형태의 데이터 전송 가능 • 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 • 지금은 HTTP 시대 HTTP 역사 • HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X • HTTP/1.0 1996년: 메서드, 헤더 추가 • HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 • RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) • HTTP/2 2015년: 성능 개선 • HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선.. HTTP 2022. 6. 22. [HTTP] URI와 웹 브라우저 요청 흐름 URI(Uniform Resource Identifier) 리소스를 식별하는 통합된 방법이란 뜻이다. URI ? URL? URN? 이런 말을 들어 봤을 것 입니다. URI에 정의된 스펙을 보면 "URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다" 라고 되어 있습니다. URI라는 가장 큰 개념이 있습니다. URL : 리소스의 위치 URN : 리소스의 이름 저희가 보통 구글이나 네이버등 웹페이지에 들어갈때 www.google.com 이런식으로 들어가는것이 URL 입니다. URI 단어 뜻 • Uniform: 리소스 식별하는 통일된 방식 • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) • Identifier: 다른 항목과 구분하는데 필요한 정보 •.. HTTP 2022. 6. 22. [HTTP] 인터넷 네트워크 IP(인터넷 프로토콜) IP 인터넷 프로토콜의 역할 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 한국에서 미국에 있는 친구하테 Hello World 라는 문자를 보낸다고 가정합니다. 그러면 최소한의 규칙이 있어야 갈 수 있지 않을까? 라는 생각을 하게 됩니다. 그게 IP 주소라는것을 통해 가능합니다. 예를들어 본인의 IP주소가 100.100.100.1이라고 할때 제가 메세지를 보내려는 친구또한 IP주소가 있어야 합니다. 예시로 200.200.200.2 라고 합니다. IP패킷정보 위 사진과 같은 IP 패킷이라는 규칙이 있습니다. 주소적듯이 내 IP 친구의 IP 를 적습니다. 그렇게해서 IP패킷을 만들고 인터넷망에 던집니다. 클라이언트 패킷 전달 I.. HTTP 2022. 6. 22. [JPA] 값 타입 기본 값 타입 @Entity public class Member { @Id @GeneratedValue private Long id; private String name; private int age; } 위의 Member에서 String, int가 기본 값 타입이다. 해당 값 타입은 회원 엔티티에 의존하며, 공유될 수 없다. 예를 들어 타인의 이름이 바뀐다고 해서, 내 이름까지 바뀌면 안 된다. 임베디드 타입(복합 값 타입) 새로운 값 타입을 직접 정의해서 사용할 수 있는데, JPA에서는 이것을 임베디드 타입이라고 한다. @Entity public class Member { @Id @GeneratedValue priate Long id; private String name; @Embedded priva.. JPA 2022. 6. 19. [JPA] 프록시와 연관 관계 관리 프록시 엔티티를 조회할 때 연관된 엔티티가 항상 사용되는 것은 아니다. ex) 멤버는 팀 엔티티만 연관되어있지만, 멤버의 이름만 가져오길 원할 수 있음. 이때는 굳이 팀 엔티티 정보는 없어도 무방함. JPA는 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데, 이를 지연 로딩이라고 한다. 지연 로딩을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라고 한다. 프록시 기초 EntityManager.getReference() 를 호출하면, JPA는 데이터베이스를 조회(쿼리를 날리지 않음)하지 않고 실제 엔티티 객체를 생성하지 않는다. 대신에 데이터베이스 접근을 위임한 프록시 객체를 반환한다. 프록시의 특징 프록시 클래스.. JPA 2022. 6. 19. [JPA] 고급매핑 상속 관계 매핑 • 관계형 데이터베이스는 상속 관계X • 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 • 상속관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 • 각각 테이블로 변환 -> 조인 전략 • 통합 테이블로 변환 -> 단일 테이블 전략 • 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 조인전략 조인 전략은 위 그림과 같이 엔티티 각각을 모두 테이블로 만들고 자식 테이블이 부모 테이블의 기본 키를 받아서 기본 키 + 외래 키로 사용하는 전략이다. 이 전략을 사용할 때 주의할 점은 객체는 타입으로 구분할 수 있지만, 테이블은 타입의 개념이 없으므로 DTYPE 컬럼과 같이 타입을 구분하는 컬럼.. JPA 2022. 6. 18. [JPA] 다양한 연관 관계 매핑 연관관계 매핑시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany JPA에서 다중성을 위해 제공하는 어노테이션들이다. 처음에는 헷갈릴수도 있는데 전부다 DB에 매핑하기위해 제공하는것이므로 데이터베이스의 관점에서 생각하면 될것같다. 단방향, 양방향 테이블 • 외래 키 하나로 양쪽 조인 가능 • 사실 방향이라는 개념이 없음 객체 • 참조용 필드가 있는 쪽으로만 참조 가능 • 한쪽만 참조하면 단방향 • 양쪽이 서로 참조하면 양방향 연관관계 주인 • 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 • 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데 • 객체 양방향.. JPA 2022. 6. 18. [JPA] 양방향 연관관계와 연관관계의 주인2- 주의점,정리 이 글은 이전글과 이어지는 글입니다. 양방향 연관관계 매핑시 가장 많이 하는 실수 !! (연관관계의 주인에 값을 입력하지 않음) Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setName("member1"); //역방향(주인이 아닌 방향)만 연관관계 설정 team.getMembers().add(member); em.persist(member); 위와 같이 연관관계의 주인은 member인데 team객체에서 멤버를 참조해서 member를 넣으면 결과가 어떻게 나올까요 ? 결과는 member 테이블 에는 teamID가 null 이 들어갑니다. 그러면 이것을 해결하기위해 어떻.. JPA 2022. 6. 18. 이전 1 ··· 8 9 10 11 12 13 다음