JVM = 자바 가상 머신 바이트 코드 = 자바 프로그램 변환코드 자바 컴파일러 = 자바 > 클래스 인터플리터 = 코드 해석기 JIT 컴파일러 = 빠른 코드 해석기 클래스 로더 = 운반기 디버깅 = de + bug 기본형 논리형 변수 문자형 변수
JDK의 역할 compiler = .java > class JDE = 자바 실행 환경 jdb = 디버깅 자바 프로젝트는 젤 먼저 main 메소드 실행 ! static = 프로그램 시작 시 무조건 실행 ! string[] args = input (args에 아무거나
int보다 작은 short타입이면 intlong보다 작은 int short타입이면 longfloat보다 작은 long int short타입이면 floatdouble보다 작은 flaot long int short타입이면 doubleBit 자리수 옮기는 것 = 비트 연산&
객체 모델링객체 상호작용객체 지향 프로그래밍 특징캡슐화상속다형성추상화클래스를 만들기 위해1\. 클래스 선언 (설계도 선언)2\. 필드 정의 (속성 정의)3\. 생성자 (생성 방식 정의)4\. 메서드 정의 (행의 정의)클래스의 필드 정의 필드는 객체 속성으로써 데이
$ pwd / 현재 경로 확인$ ls / 현재 경로 파일 및 폴더 확인$ ls -al / .. + 숨김 파일 및 폴더 확인$ cd / 경로 아동$ cd . / 상위 디렉터리$ cd .. / 현재 디렉터리$ cd ~ / 홈 디렉터리$ touch abc.txt / 파일 생
Github
기능크기 자동조정 / 추가 / 수정 / 삭제 / 반복 / 순회 / 필터 / 포함확인 등 종류List : 순서가 있는 데이터의 집합 (데이터 중복 허용) - 배열과 비슷Queue : 한쪽에서 데이터를 넣고 반대쪽에서 데이터를 뺄 수 있는 집합First In First O
프로세스 코드 = 데이터 = 메모리 영역 (스택 힙) 쓰레드
@RequestParam 생략 가능(required = false) 빈칸 기능 / null 들어옴
객체 = 물체속성(필드) 행위(메서드)캡슐화 상속 다형성 추상화
설치하기https://git-fork.com/깃허브 아이디 및 이메일 입력하기git bash에서 명령어 입력하기$ cd .$ pwd$ git clonefork에서 파일 오픈하기브랜치 생성하기인텔리지에서 내용 작성하기커밋하기
도커(Docker)와 기존 가상화 기술(가상 머신, VM)의 차이점을 살펴보겠습니다.기존 가상화(VM):기존 가상화 기술은 하이퍼바이저(hypervisor)를 사용하여 독립된 가상 환경(가상 머신, VM)을 생성합니다. 각 VM은 게스트 운영 체제(Guest OS)를
트랜잭션의 성질▶ 원자성(Atomicity)한 트랜잭션 내에서 실행한 작업들은 하나로 간주한다. 즉, 모두 성공 또는 모두 실패. ▶ 일관성(Consistency)트랜잭션은 일관성 있는 데이타베이스 상태를 유지한다. (data integrity 만족 등.)▶ 격리성(I
Controller Service Repository
설계 원칙디자인 패턴Bean 등록 시 @ ComponentSpring Boot 장점 중 하나라고 생각이 드는 게 기본적인 설정들을 default로 잡아 준다는 것이다. 덕분에 삶의 질이 높아진다 ㅎ.ㅎ.ㅎ
- JPA는 애플리케이션과 JDBC 사이에서 동작 - JPA를 사용하면 DB 연결 과정을 직접 개발하지 않아도 자동 처리 - 객체를 통해 간접적으로 DB 데이터를 다룰 수 있어서 쉽게 DB 작업 처리
- default 메서드 생략 가능 #### 꼭 지켜야 하는 것들 - 코드 컨벤션 지키기 - 코드 줄 맞추기 (풀리퀘스트 시 의미 없는 주석 + import 삭제하기)
기존의 토큰 방식 인증은 다이어그램에 표시된 것처럼 토큰은 이후의 모든 서비스 호출에 사용서비스를 받기 위해서는 토큰의 유효성을 확인하여 세부 정보를 쿼리참조에 의한 호출(By Reference) 형태로 모든 서비스는 항상 상호 작용할 때 다시 접속해야 함JWT 와 같
plugins { id 'java' id 'org.springframework.boot' version '3.1.1' id 'io.spring.dependency-management' version '1.1.0'}복습 차 강의를 다시 보고 있다. 강의에
API = 약속HTTP = 언어IP = 주소포트 = 이름내가 이해가는대로 간략하게 정리해봤다 .. ㅎ.ㅎ.ㅎ
영속성 컨텍스트와 지연 로딩영속성 컨텍스트의 기능1차 캐시쓰기 지연 저장소변경 감지지연 로딩도 마찬가지로 영속성 컨텍스트의 기능 중 하나지연 로딩된 Entity의 정보를 조회하려고 할 때는 반드시 영속성 컨텍스트가 존재 o영속성 컨텍스트가 존재해야한다 = 트랜잭션이 적
금요일에 그 동안 준비했던 뉴스피드 프로젝트 발표 시간을 가졌다. 프로젝트 발표를 맡게 되어서 발표 시간 전까지 발표 자료 정리 모의 발표 소요 시간 체크 줌 테스트 수정 사항 업데이트 위의 내용을 반복해서 준비하였다. 발표를 마무리하고서 개인적으로 셀프 피드백을
OAuth 란?OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준사용자가 애플리케이션에게 모든 권한을 넘기지
Spring Boot는 Spring과 마찬가지로 component-scan을 통해서 component들을 찾아서 bean을 생성이 과정으로 설정한 bean들(@Repository, @Service, @Controller, @RestController, @Configur
포괄적이고 확장 가능한 인증과 권한 지원세션 고정, 클릭 재킹, 크로스 사이트 요청 위조 등과 같은 공격으로부터 보호서블릿(Servlet) API(Application Programming Interface) 통합Spring Web MVC와의 선택적 통합
Spring에서 모든 호출은 DispatcherServlet을 통과하게 되고 이후에 각 요청을 담당하는 Controller 로 분배이 때, 각 요청에 대해서 공통적으로 처리해야할 필요가 있을 때 DispatcherServlet 이전에 단계가 필요하며 이것이 Filter
(는 내일부터 본격적으로 하기 . . ㅎ.ㅎ)
PostController 클래스는 @RestController와 @RequestMapping 어노테이션을 사용하여 RESTful API 엔드포인트를 정의PostService 클래스를 주입받기 위해 생성자 주입을 사용하고 있으며, 생성자에 @Autowired 어노테이션
게시물 CRUD 기능 구현 시 추후에 발생할 수 있는 문제들에 대비하여 PostResponseDto, PostRequestDto를 활용하여 구현했다. PostResponseDto와 PostRequestDto 활용 시 1. 데이터의 구조화 2. 데이터 전송의 효율성
회의 시간에 인텔리지에서 공동 작업하는 방법에 대해 알게 되었다. 유용한 방법이라 기록 하는 중이다. ## 1. ![](https://velog.velcdn.com/images/euna0903/post/d69dd7d7-3442-48e1-a3ac-0e8cf33736
게더에 새롭게 만들어진 공원(?)에서 팀원들과 장원님의 시큐리티 강의를 들었다. 사실 시큐리티에 대한 전반적인 이해가 부족한 상황이었는데 강의를 통해 전체적인 흐름에 대해 이해하는 시간을 가질 수 있었다. 팀원들과 프로젝트를 진행하며 내 스스로가 성장하는 모습을 볼 수
오전 시간에 발표를 위한 코드 및 SA 업데이트를 마무리하고서 발표 시간을 가졌다. 프로젝트를 마무리하고서 드는 생각은 팀 내에서 문제 상황에 대해 신속하게 공유하고 다양한 해결책에 대해 제시하면서 그로 인해 많이 배울 수 있었던 기간이었단 생각이 든다. 누군가에게 문
관점 지향 프로그래밍\-> 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것\-> 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것예로들어 핵심적인 관점은 결국 우리가 적용
회원 가입과 로그인을 담당하는 UserController와 게시글 작성, 조회, 수정, 삭제와 관련된 API를 담당하는 PostController로 나누었다. 나누어진 컨트롤러들은 각각의 책임을 가지고 API를 처리하게 된다. UserController는 회원 가입과
public List<PostResponseDto> getPostListV1() { // 방법 1: 리스트 반복하여 추가하기 List<Post> postList = postRepository.findAllByOrderByCreateAtDesc();
findPostById 메서드를 호출하여 삭제할 게시글을 찾습니다.만약 찾는 게시글이 존재하지 않는 경우, NotFoundException을 던지고 예외 처리합니다.checkDeletePermission 메서드를 호출하여 삭제 권한을 확인합니다.삭제 권한이 있으면 해당
람다를 활용할 수 있는 기술 중 하나스트림은 '데이터의 흐름’배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있음또한 람다를 이용해서 코드의 양을 줄이고 간결하게 표현할 수 있음즉, 배열과 컬렉션을 함수형으로 처리할
@Around("updatePost() || deletePost()"): 이 코드는 AOP에서 어드바이스를 적용할 메서드의 실행 조건을 지정함. updatePost()와 deletePost()라는 이름의 메서드가 실행될 때 이 AOP 어드바이스가 동작하도록 함.publ
함수적 인터페이스(functional interface)는 추상메서드가 1개만 정의된 인터페이스 람다식은 함수적 인터페이스에 사용할 수 있음 람다식을 실행하면 인터페이스를 구현하는 객체가 생성람다식은 이름을 따로 지정하지 않으므로 익명구현객체가 생성인터페이스에는
22 = ssh(secure shell)로 인스턴스에 원격 접속21 = FTP 파일전송 프로토콜80 = http 웹 접속443 = https 안전한 http 접속, 현재의 스탠다드대표적인 포트 번호들. 80은 종종 사용해서 익숙한 느낌이다.
@OneToOne@OneToMany@ManyToOne@JoinColumn@ManyToMany
FixtureMonkey 네이버에서 만든 테스트 생성 객체를 자동으로 생성해주는 자바 라이브러리Mock 객체를 보다 쉽게 생성하기 위해서 사용generator를 변경해서 생성했을 때 generator에 해당하는 propertyNameResolver가 동작하지 않는 문제
Raw JPA 기타 기능 Cascade (영속성 전이) @OneToMany @OneToOne orphanRemoval (고아 객체 제거) @OneToMany @OneToOne Fetch (조회시점) @ElementCollection @ManyToMany @OneToMa
(는 2일차부터 함미다 ㅎ-ㅎ-)
저장소에서 columnId로 컬럼 검색이전 열 번호와 새 열 번호를 비교하여 순서를 변경해야 하는지 결정순서를 변경해야 하는 경우 저장소에서 모든 열 검색열을 반복하여 새 열 번호가 있는 열을 찾고 해당 열 번호를 이전 열 번호로 업데이트선택된 컬럼의 컬럼 번호를 새로
Frontend와 Backend의 동작 Flow
풀 리퀘스트 클릭목록에서 해결하려는 병합 충돌이 있는 끌어오기 요청 클릭끌어오기 요청의 아래쪽에서 충돌 해결 클릭충돌 표식 <<<<<<<, =======, >>>>>>>를 삭제하고 최종 병합에서 원하는 대로 변경파일에 둘 이상의 병
1\. Development: 개발2\. Unit Tests (단위 테스트): 개발자 테스트3\. QA Testing: \- 블랙박스 테스팅 \- 주로 QA 팀이 Production 환경과 유사한 환경(Stage)에서 테스팅4\. Production: 실 서
심화 프로젝트 발표 날. 프로젝트를 반복할수록 개선된 부분과 개선되어야 할 부분이 전보다는 명확하게 보인다. 프로젝트가 끝날 때마다 KPT를 기록하고 같은 문제가 발생했을 때 기록한 내용을 참고하면서 해결하다 보니 원활하게 개선될 수 있었다고 생각한다. 앞서 작성한 K