CI/CD란?CI는 간단히 요약하자면 빌드/테스트 자동화 과정 과정입니다. CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을의미합니다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로
항해99 멘토님의 S.A피드백에 따라 기술 챌린지에 대한 부족한 부분과 추가적으로 구성하면 좋을 기능적인 부분들에 대한 아이디어 회의를 진행했습니다.먼저 기술적으로 챌린지할 수 있는 부분이 부족하여 WebSocket을 이용한 실시간 채팅을 구현하는 것으로 정했습니다.프
본격적인 프로젝트 기획 회의가 19시부터 진행되었다.디자이너분들과 슈퍼팀원과의 어색한 첫 만남을 가졌다!자기소개도 하고, 게임도 즐겼다.(꿀잼)디자이너분들의 적극적인 아이디어와 기획 그리고 UI/UX 등의 아이디어를많이 내주셨고, 개발팀 또한 다양한 의견을 내주어 너무
과제 중 사용했던 개념들의 정리는 정리2로 대신! ㅠㅠ정말 몰랐던 어노테이션을 많이 알게되었고, 어떻게 쓰이는지 이해하게 된 시간이었던 것 같습니다.처음에 고민했던 많은 것들을 제쳐두고 구현에 집중하고자 일단은 구글링 또는 찾은 자료들을 무작정 때려놓고 시작해서 디버깅
N+1 쿼리 문제의 원인 ? Spring Data JPA에서 제공하는 Repository의 ‘findAll()’, ‘findById()’ 등과 같은 메소드를 사용하면 바로 DB에 SQL 쿼리를 날리는 것이 아닙니다. JPQL이라는 객체지향 쿼리 언어를 생성, 실행
CORS란? 교차 출처 리소스 공유(Cross-origin resource sharing, CORS), 교차 출처 자원 공유는 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다. CORS를 알기 전
객체는 객체 그래프로 연관된 객체들을 탐색한다.JPA 구현체들은 이 문제를 해결하기 위해 프록시라는 기술을 사용한다.프록시를 사용하면 연관된 객체를 처음부터 데이터베이스에서 조회하는 것이 아니라실제 사용하는 시점에 데이터베이스에서 조회할 수 있다.하지만 자주 함께 사용
commitcommit(커밋) 을 통해 '현재 프로젝트의 상태'을 저장하고 조회누가(author), 언제(시간), commit 시점의 파일 상태, commit 메시지 정보를 포함.push로컬 repo 의 commit 들을 원격 repo 에 반영하기(push)! 밀어넣기
SI에서 일을 할 때, 비즈니스 로직 작성을 하는 데 들이는 시간보다 대부분 MyBatis의 SQL MAPPER를 사용하면서 SQL를 다루는 시간이 많았다.JPA라는 자바 표준 ORMiBatis, Mybatis 는 ORM이 아니다.웹 애플리케이션에서 관계형 데이터베이스
TDD는 테스트가 주도하는 개발테스트 코드를 먼저 작성하는 것부터 시작항상 실패하는 테스트를 먼저 작성한다. (RED)테스트가 통과하는 프로덕션 코드를 작성한다. (GREEN)테스트가 통과하면 프로덕션 코드를 리팩토리한다.(REFACTOR)TDD의 첫 번째 단계인 기능
Table "hibernate_sequence" not found (this database is empty); SQL statement:select next_val as id_val from hibernate_sequence for update 42104-212일단
지금까지 인증과 인가에 대한 개념과 JWT를 구현하는데에 있어서 어려움이 있었다.처음 접하는 용어들 개념들이 많았기 때문이었던 것 같은데 이해한대로 아는대로 작성했다.인증을 실생활에서 빗대어 표현을 하면 출입증과 유사하다고 볼 수 있을 것 같다.결국, 웹에서도 실행활과
클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성한다.이와 비슷한 @RequriedArgsConstructor도 있다. 초기화 되지 않은 모든 final 필드, @NonNull과 같이 제약조건이 설정되어있는 모든 필드들에 대한 생성자를 자동으로 생성한다.발생할
JPA를 사용하는 데 가장 중요한 일은 엔티티와 테이블을 정확히 매핑하는 것!객체와 테이블 매핑 : @Entity, @Table기본 키 매핑 : @Id필드와 컬럼 매핑 : @Column연관관계 매핑 :@ManyToOne, @JoinColumn참고매핑 정보는 XML과 어
• 영속 -> 준영속 • 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached) • 영속성 컨텍스트가 제공하는 기능을 사용 못함• em.detach(entity)특정 엔티티만 준영속 상태로 전환 • em.clear()영속성 컨텍스트를 완전히 초기화 • em.c
영속성 컨텍스트의 변경 내용을 데이터베이스에 반영변경감지쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다. (등록, 수정, 삭제 쿼리).영속성 컨텍스트를 플러시하는 방법은 3가지이다.em.flush()를 직접 호출한다.(test할 때는 사용됨.)트랜잭션 커밋 시
마크다운이란?마크다운(markdown)은 일반 텍스트 기반의 경량 마크업 언어다. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에
프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술입니다. 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있으며, 완성된 어플리케이션이 아닌 프로그래머가 완성
Annotation(@)은 사전적 의미로는 주석이라는 뜻이다.자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다.즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다.meta data : 데이터를
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.spring.week03.domain.Memo같은 조 조원이 스프링에서 에러가 발생했고원은 @Id에서 에러가 발생한