ZB 백엔드 스쿨34 제로베이스 백엔드 취업 스쿨과 함께한 나의 6개월 돌아보기 (feat. 제로베이스 백엔드 취업 스쿨 수강 후기) 왜 하고 많은 부트캠프 중에 제로베이스 였던가 ? 일단 이 얘기를 제일 먼저 해야할 것 같다. 나는 경기권 4년제 대학의 정보통신공학과를 졸업했다. 웹 개발자를 하고 싶었지만 과에서 다루지 않는 과정이라 웹 개발 관련해서 아무것도 아는게 없었고 기초 공부가 필요하다고 느껴졌다. + 프로젝트 경험도 필요했다. 부트캠프 시작 전에도 혼자 백준을 통해 알고리즘을 공부했다. 그 유명한 SSAFY를 도전했지만 코딩테스트에서 커다란 벽을 느끼고 혼자서는 안 될 것 같다는 생각을 했다. 어디서라도 배울 필요성을 느껴 여러 부트캠프를 추려보았었다. 오프라인은 거리도 있고 출퇴근 시간에 물려 지하철을 타고다닐 생각을 하니 그럼 언제 집에와서 언제 밥먹고 언제 공부하지 ? 라는 생각이 제일 많이 들었고 나는 알고리즘 강의.. 2024. 2. 8. 스프링 핵심가이드) 북스터디 7주차 : 12장 서버 간 통신 12장 서버 간 통신 최근 개발 서비스들은 마이크로 서비스 아키텍처 (MSA)를 주로 채택하고 있음. MSA는 애플리케이션이 가지고있는 기능(서비스)이 하나의 비즈니스 범위만 가지는 형태. 각 애플리케이션은 자신이 가진 기능을 API로 외부에 노출하고, 다른 서버가 그러한 API를 호출해서 사용할 수 있게 구성되므로 각 서버가 다른 서버의 클라이언트가 되는 경우도 많음. 다른 서버로 웹 요청을 보내고 응답을 받을 수 있게 도와주는 RestTemplate과 WebClient에 대해 기술. 12.1 RestTemplate이란 ? - RestTemplate : 스프링에서 HTTP 통신 기능을 손쉽게 사용하도록 설계된 템플릿. HTTP 서버와의 통신을 단순화한 이 템플릿 이용시 RESTful 원칙을 따르는 서비.. 2023. 11. 5. 스프링 핵심가이드) 북스터디 7주차 : 11장 액추에이터 활용하기 11장 : 액추에이터 활용하기 애플리케이션 정상 동작 모니터링 환경 구축은 중요. 스프링 부트 액추 에이터 : HTTP 엔드 포인트나 JMX를 활용해 애플리케이션 모니터링하고 관리할 수 있는 기능 제공. * JMX(Java Management Extensions) : 실행 중인 애플리케이션의 상태를 모니터링하고 설정을 변경할 수 있게 해주는 API. JMX를 통해 리소스 관리하려면 MBeans(Managed Beans)를 생성해야 함. 11.1 액추에이터 종속성 추가 액추에이터 기능을 사용하려면 애플리케이션에 spring-boot-starter-actuator 모듈의 종속성 추가. 11.2 엔드포인트 액추에이터의 엔드포인트틑 애플리케이션의 모니터링을 사용하는 경로. 스프링 부트에는 여러 내장 엔드포인트가.. 2023. 11. 5. 스프링 핵심가이드) 북스터디 6주차 : 10장 유효성 검사와 예외처리 10 유효성 검사와 예외처리 유효성 검사 / 데이터 검증 : 비즈니스 로직이 올바르게 동작하기 위해 데이터를 사전 검증하는 작업 10.1 일반적인 애플리케이션 유효성 검사의 문제점 일반적으로 사용되는 데이터 검증 로직의 문제점 : 1. 계층별로 진행하는 유효성 검사는 검증 로직이 각 클래스 별로 분산되어 있어 관리가 어려움. 2. 검증로직에 중복이 많아 여러 곳에 유사한 기능의 코드가 존재할 수 있음. 3. 검증해야 할 값이 많으면 검증하는 코드가 길어져 가독성이 떨어짐. => Bean Validation이라는 데이터 유효성 검사 프레임워크로 위의 문제들을 해결. Bean Validation은 어노테이션을 통해 다양한 데이터를 검증하는 기능을 제공. - 유효성 검사를 위한 로직을 DTO같은 도메인 모델과.. 2023. 10. 29. 스프링 핵심가이드) 북스터디 5주차 : 09장 09 연관관계 매핑 9.1 연관관계 매핑 종류와 방향 - One to One - One to Many - Many to One - Many To Many 어떤 엔티티를 중심으로 연관 엔티티를 보느냐에 따라 연관관게의 상태가 달라짐. DB에서는 두 테이블의 연관관계를 설정하면 외래키를 통해 서로 조인해서 참조하는 구조로 생성, JPA를 사용하는 객체지향 모델링에서는 엔티티간 참조 방향 설정 가능. - 단방향/양방향으로 설정할 수 있다. 연관관계가 설정되면 한 테이블에서 다른 테이블의 기본키 값을 외래키로 갖는다. 외래키를 가진 테이블이 '주인'이 된다. 주인은 외래키를 사용(등록, 편집, 수정)할 수 있고 상대엔티티는 읽기만 가능. 9.3 일대일 매핑 9.3.1 일대일 단방향 매핑 하나의 상품에 하나의 상.. 2023. 10. 20. 스프링 핵심가이드) 북스터디 4주차 : 08장 Spring Data JPA 08 Spring Data JPA 활용 8.2 JPQL(JPA Query Language) : JPA에서 사용할 수 있는 쿼리 의미. JPQL은 엔티티 객체를 대상으로 수행하는 쿼리이기 때문에 매핑된 엔티티의 이름과 필드의 이름을 사용. ex) SELECT p FROM Product(엔티티 타입) p WHERE p.number(엔티티 속성) = ?1; SQL은 테이블이나 칼럼의 이름 사용. 8.3 쿼리 메서드 리포지토리는 JpaRepository를 상속하는 것 만으로 다양한 CRUD 메소드 제공. 8.3.1 쿼리 메서드의 생성 쿼리메서드는 동작을 결정하는 주제(Subject)와 서술어(Predicate)로 구분. find...By, exists...By 키워드로 쿼리의 주제를 정함. By는 서술어의 시작.. 2023. 10. 16. sdk로 gradle, docker, redis 설치 윈도우에서 sdk man 설치 시 Please install zip on your system using your favourite package manager. 오류 (tistory.com) 윈도우에서 sdk man 설치 시 Please install zip on your system using your favourite package manager. 오류 sdkman은 Gradle, Java, Kotlin등의 버전 관리 툴이다. 단순 CLI 명령으로 JDK를 설치하고 변경하고 환경변수 변경을 처리해준다. 유닉스 기반 프로그램이라 윈도우의 경우 Git bash에서 명령어 타이핑 진행 soni-developer.tistory.com sdkman, jdk 설치까진 위 포스팅에 gradle 설치 defaul.. 2023. 10. 9. 스프링 핵심가이드) 북스터디 3주차 : 06장 06 데이터베이스 연동 6.1 마리아DB설치 실무에서는 root 계정 사용하지 않음. 문자 인코딩 방식 UTF-8 설정 : Use UTF8 as default server's character set에 체크 GUI도구 : HeidisSQL 6.2 ORM ORM(Object Relational Mapping) : 객체 관계 매핑 자바와 같은 객체지향 언어에서 의미하는 객체와 RDB(Relational Database)의 테이블을 자동으로 매핑하는 방법 Persistance : 영속성. 데이터를 생성한 프로그램이 종료되어도 데이터는 남아있는 것 -> DB Persistance Framework : 영속성을 가진 DB와 Spring Boot를 이어주는 것 - 종류 : SQL Mapper, ORM - SQL M.. 2023. 10. 8. 스프링 핵심가이드) 북스터디 2주차 : 04~05장 API를 작성하는 다양한 방법 04 스프링 부트 애플리케이션 개발하기 4.1 프로젝트 생성 1. 인텔리제이 IDEA에서 생성 - ultimitate 버전에서만 가능 2. Spring Initalizr - Community 버전에서 사용. 4.2 pom.xml(Project Object Model) - pom.xml은 메이븐의 기능을 사용하기 위해 작성하는 파일. - 프로젝트, 의존성 라이브러리, 빌드 등의 정보 및 해당 프로젝트를 관리하는데 필요한 내용있음. - 빌드관리도구 ? ) JVM이나 WAS가 프로젝트를 인식하고 실행할 수 있게 작성한 소스코드와 프로젝트에 사용된 파일들(.xml, .jar, .properties)를 빌드하는 도구. 개발 규모가 커질수록 라이브러리들, 라이브러리 간 버전 호환성 체크에 용이 - 메이븐 : 자바 .. 2023. 9. 30. 이전 1 2 3 4 다음 728x90