전체 글 Basic Grammar/Java 2022. 7. 10. Stream 다양한 데이터 소스(컬렉션, 배열)를 표준화된 방법으로 다루기 위한 것 # 순서 1. 스트림으로 만들기 2. 중간연산 (여러번) 3. 최종연산 (1번) ex) list.stream() 하면 Stream로 바뀜 # 특징 1. 스트림은 데이터소스로부터 데이터를 읽기많 할 뿐 변경하지 않는다. - 원본 변경 X 2. 스트림은 Iterator처럼 일회용이다. ( 필요하면 다시 생성 ) - 스트림을 최종연산하고나면 스트림의 요소를 소모함. (하나씩 꺼내서 씀) - 최종연산하면 스트림이 닫힘.( 다시 열어야함. ) 3. 최종연산 전까지 중간연산이 수행되지 않는다. ( 지연된 연산 ) - ex) 무한 스트림을 .distinct() 할 수 있다. 4. 스트림은 작업을 내부 반복으로 처리한다. 5. 스트림의 작을 병렬로.. Java, Spring/스프링 입문 2022. 7. 10. JPA Member 클래스를 엔티티화 한다. ( @Entity ) @Id : 해당 필드를 PK로 만든다. @GeneratedValue(strategy = GenerationType.IDENTITY) : DB가 ID를 자동으로 생성해주는 것 = IDENTITY @Column(name="username") : 테이블의 칼럼의 이름이 username 이라면 : 필드명="칼럼이름" 클래스에서는 '필드', 테이블에서는 '칼럼' 이라 한다. 하면 DB의 칼럼이름인 username과 매핑이 됨. JPA는 EntityManager로 모든것이 동작한다. ( build.gradle에서 스프링부트 데이터 jpa를 implementation을 해주면 implementation 'org.springframework.boot:sprin.. Java, Spring/스프링 입문 2022. 7. 10. 통합테스트 통합테스트 : DB까지 연결해서 하는 테스트 단위테스트 : 순수한 자바코드로 최소한의 단위로 테스트 대부분 단위테스트가 더 좋은 테스트 ( 보통은 스프링 컨테이너 안올리는 단위테스트가 더 좋음 ) 테스트는 항상 가장 쉬운 방법으로 ( 필드 주입 ) , SpringConfig에서 스프링컨테이너에 올려둔다. 통합테스트 할 때는 스프링이 뜸, 테스트 끝나면 스프링 내려감 테스트는 반복가능해야함. 그러나 회원가입() 한번 실행하면 "spring"이 DB에 들어가 있다. -> 다시 실행시 fail뜸 해결법 1) AfterEach 작성 2) 테스트 끝나고 롤백(db에 데이터 반영(commit)X) DB는 기본적으로 트랜젝션. DB에 insert query하고 commit해야 DB에 반영됨. ( 평소는 autocom.. Java, Spring/스프링 입문 2022. 7. 10. 회원 웹 기능 - 홈 화면 추가, 등록 원래 홈페이지 ( localhost:8080/ ) 으로 가면 원래 index.html 이 나왔는데 @GetMapping("/") 을 가진 컨트롤러가 있으면 컨트롤러에 먼저 매핑되고 index.html은 실행되지 않는다. . 컨트롤러 제거하면 재등장 # 컨트롤러에 GET방식 /members/new 를 추가한다. members/createMemberForm으로 매핑. 이므로 @PostMapping 으로 매핑된다. (html 설명 : form태그, input name="name" 을 통해 name의 값이 MemberForm의 name에 저장됨 ( spring이 setName을 불러서 저장시킴 ) @PostMapping("/members/new") 메서드에서 멤버를 join (회원가입) 시키고 홈url로 리다이.. Java, Spring/스프링 입문 2022. 7. 10. 컴포넌트 스캔과 자동 의존관계 설정, 자바코드로 직접 스프링 빈 등록하기 맨 처음에 스프링이 뜰 때 스프링컨테이너가 뜨는데 @Controller 가 있으면 스프링컨테이너에 객체를 생성해서 넣어둔다. = "스프링 컨테이너에서 스프링 빈이 관리된다" 고 표현 # 잘못쓴 경우 : 매번 객체 생성 MemberService 객체 하나만 만들어놓고 공용으로 쓰자! 이렇게 바꾸자! -> MemberController는 IoC 했고 @Autowired를 통해 memberService에 DI 하였다. 그런데 왜 빨간불???? MemberService 클래스는 스프링에서 관리하지 않는 순수 자바클래스이기 때문이다. MemberService 도 IoC 해줘야 스프링에서 인식할 수 있다. -> @Service, 같은 이유로 MemoryMemberRepository 는 @Repository 붙혀주기.. Java, Spring/스프링 입문 2022. 7. 10. 회원 서비스 테스트 테스트 만들고 싶은 클래스이름 위에 커서 올려두고 Ctrl + Shift + T 누르고 테스트원하는 메서드 선택하면 자동으로 테스트가 만들어진다. 테스트코드의 메서드이름은 한글로 가능!! 1. 회원가입 2. 중복 회원 예외 1) try-catch 문 사용 - 위의 가입테스트는 잘되는 경우를 테스트함 (반쪽짜리 테스트) 예외 상황도 상항 테스트 해주어야한다. trycatch문으로 예외를 잡았다. member1,2를 같은 이름 spring으로 해두었다. member1을 join 후 member2를 join할 때 이 때 예외가 터지지 않고 그 다음 줄로 넘어가면 fail(); 임을 명시한다. 우리는 예외가 터지게 설계 해두었으므로 IllegalStateException을 잡아서 assertThat해준다. 이 .. Django 입문 2022. 7. 9. Django Docs Tutorial https://docs.djangoproject.com/ko/4.0/intro/tutorial01/ Docker 2022. 7. 7. Docker-compose.yml 분석! - yml 파일은 계층적 구조. -> 들여쓰기 잘해야됨. - services 밑에 컨테이너들 - services 밑에 db, backend, frontend 가 있다. 5. image: postgres:12.0-alpine 도커허브에서 이미지 받아와서 써라 16. build: context: ./backend 이미지를 dockerhub에서 받아오거나 Dockerfile로 이미지 만들 수 있다. ( 지금 파일 docker-compose.yml 이 있는 현재디렉토리의 /backend 의 dockerfile 을 쓰겠다. -> 라는 의미로 build context 를 지정한다. # 아까 배운 환경변수 환경변수들은 discription을 봐야한다. 지원하는 환경변수는 정해져있음. ( 도커허브의 해당이미지 참고 ).. Docker 2022. 7. 7. Dockerfile 분석! https://github.com/litsynp/docker-example 1. # pull official base image 2. FROM python:3.8.3-alpine 4. ENV PYTHONDONTWRITEBYTECODE 1 5. ENV PYTHONUNBUFFERED 1 7. ARG DJANGO_ALLOWED_HOSTS 8. ARG DJANGO_SECRET_KEY 9. ARG DJANGO_CORS_ORIGIN_WHITELIST 11. ENV DJANGO_ALLOWED_HOSTS $DJANGO_ALLOWED_HOSTS 12. ENV DJANGO_SECRET_KEY $DJANGO_SECRET_KEY 13. ENV DJANGO_CORS_ORIGIN_WHITELIST $DJANGO_CORS_ORIG.. Docker 2022. 7. 6. Docker 기본개념 VM보다 Container가 훨씬 가벼움 # Docker의 3요소 1) Dockerfile - Copy files - Install dependencies - Set environment variables - Run setup scripts Dockerfile로 image를 만들 수 있다. 2) Image ( 클래스라 생각 ) - 변경 불가능한 상태 3) Container ( Image를 사용해서 각각의 Container를 만들 수 있다 ) - 개별적으로 수정가능 -> 수정해도 Image에 영향 X ( 클래스와 객체의 관계와 비슷 ) # 이미지 공유 컨테이너 레지스트리 도커가 있어야 이미지를 실행가능 # 이미지 공유 컨테이너 레지스트리 종류 # 도커 실행 과정 # Dockerfile 작성법 https:/.. 카테고리 없음 2022. 7. 5. DataBase 종류 정리 크게 분류하면 RDBMS vs NoSQL - 거의 모든 경우 SQL( = RDBMS ) 선택함, 종류는 NoSQL이 훨씬 많음 1. RDBMS - 테이블들로 이루어짐, SQL로 데이터 CRUD --------------------------------------------------------------------------------------------------------------------------- 2. NoSQL - SQL을 제외한 전체 1) Document DB 2) Key Value DB 3) Graph DB 1) Document DB - ex) Mongo DB - 어떤 형태의 데이터도 저장가능 - 데이터들이 같은 모양일 필요가 없음 2) Key Value DB - ex) Cassand.. WEB 2022. 7. 5. Web Server와 WAS의 차이와 웹 서비스 구조 https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html [Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 이전 1 ··· 17 18 19 20 21 22 23 24 다음