카카오에서 진행한 2022 kakao Tech Internshinp 에 서버 직무로 지원하여 합격한 후기입니다. 전형일정 이번 카카오 인턴은 다음과 같은 절차를 따라 진행되었습니다. 먼저 서류접수 를 하게되고 이때, 자기소개서 를 작성하게 됩니다. 그리고 이후 코딩테스트 를 본다음 코딩테스트 + 서류 를합산하여 서류전형 결과가 발표됩니다. 서류전형 결과가 발표되면 얼마 후 인터뷰 일정이 잡히고 1차 인터뷰 에 통과하면 최종 합격 상태가 됩니다. 서류 접수 서류는 크게 프로젝트 와 자기소개서 로 이루어져있습니다. 프로젝트 프로젝트는 자신이 진행했던 프로젝트를 작성하면 되며 여러개 입력이 가능합니다. 저는 총 3개의 프로젝트를 입력했습니다. 2021-2 학기에 진행한 캡스톤 디자인 프로젝트 현재 진행중이던 ..
필터와 인터셉터 필터 는 서블릿에서 제공하는 기능이며, 인터셉터 는 스프링에서 제공하는 기능이다. 필터란? 웹 애플리케이션을 구성하다보면 공통적으로 처리하는 로직이 존재하게 된다. 예를들어, 어떠한 페이지는 로그인 에 성공하는 유저만 접근할 수 있다고 하자. 그럼 해당 페이지의 컨트롤러마다 로그인 에 성공했는지 검증하는 코드가 필요하게 된다. 이렇게 여러 로직에서 공통으로 관심이 있는 것을 공통 관심사 라고 한다. 이러한 공통 관심사를 해결하는 방법에는 스프링의 AOP를 사용하는 방법도 있지만 웹과 관련된 공통 관심사는 서블릿 필터 나 스프링 인터셉터 를 사용하는 것이 더 유리한 경우가 있다. 필터의 흐름은 다음과 같다. HTTP 요청 -> 서블릿 컨테이너 -> 필터 -> 서블릿 -> 컨트롤러 필터를 적..
쿠키란? 세션을 알기 위해선 먼저 쿠키(Cookie) 가 뭔지 알아야 한다. 쿠키는 크게 두가지 용도로 사용된다. 웹 서버가 사용자의 브라우저에 저장하여 서버에 요청할 때 전달하는 텍스트 파일 방문 기록등 브라우저에서 사용했던 정보들이 저장된 텍스트 파일 이 포스팅에서 주로 설명할 내용은 1번에 관한 내용이다. 서버에서 요청에 대한 응답 값으로 쿠키를 함께 보내줄 수 있다. 이 쿠키는 사용자의 브라우저에 저장된다. 그리고 이후 서버에 요청을 보낼 때 마다 이 쿠키를 함께 실어서 보낸다. 그러면 서버에서는 쿠키에 담긴 정보를 통해 여러가지 비즈니스 로직을 수행할 수 있다. 쿠키가 가장 많이 사용되는 예시는 로그인 이다. 사용자가 로그인에 성공하면 서버에서는 로그인에 성공했다는 의미로 쿠키 를 만들어 사용자..
직접 공부하며 정리한 내용이라 틀린 내용이 있을 수 있습니다! JavaConfig방식을 통해 스프링이 구동되는 순서를 알아보자. 먼저 xml설정일 때의 예로, 전체적인 그림을 보면 다음과 같다. 웹 어플리케이션 실행 웹 어플리케이션이 실행되면 톰캣에 의해 web.xml이 로딩되면서 스프링 구동된다. Java Config방식에서는 web.xml의 역할을 할 클래스를 만들어야 한다. 이는 WebApplicationInitializer 인터페이스를 구현하여 onStartup 메소드를 작성하면 된다. public class WebApplication implements WebApplicationInitializer { @Override public void onStartup(ServletContext servl..
엔티티를 수정하는 방법에는 크게 두가지가 있다. 변경감지 기능 병합(merge) 기능 두가지 방법의 차이점을 알아보겠다. 변경감지 기능 영속성 컨텍스트에 의해 관리되는 엔티티를 수정한 경우 발생한다. 트랜잭션 안에서 엔티티를 수정한다면 트랜잭션이 커밋 되는 시점에 변경 감지(Dirty Checking)이 일어나 DB에 실제 UPDATE SQL이 날라가게 된다. @Transactional void update(Member member) { Member member = memberRepository.findById(member.getId()); member.setName("change"); }위의 코드에서 member 는 영속성 컨텍스트에 의해 관리되고 있는 객체이다. 이 상태에서 member의 값을 변경하..
프로젝트를 진행하던 중에 예외에 따라 응답값을 다르게 내려줘야 하는 상황이 생겼다. 기존에는 예외처리가 필요한 코드를 try-catch 문을 통해 일일히 처리했지만 @ControllerAdvice 를 이용하면 더 깔끔하게 예외를 처리할 수 있다고 한다. ControllerAdvice란? @Controller 혹은 @RestController 에서 발생한 예외를 한 곳에서 처리할 수 있도록 도와준다. 일반적인 API서버는 컨트롤러에서 Service 객체를 통해 비즈니스 로직을 처리하게 된다. 그리고 만약 비즈니스 로직 수행 중 예외가 발생할 경우 컨트롤러 단 까지 예외가 넘어오게 된다. @ControllerAdvice 는 이렇게 컨트롤러 단에서 발생한 예외들을 한 곳에서 처리할 수 있도록 도와준다. 이걸 ..
JPA 양방향관계, 즉시로딩과 지연로딩 DB를 사용하다보면 필연적으로 여러 테이블을 설계하게 된다. 그리고 여러 테이블의 연관 관계를 이용하여 원하는 데이터를 DB로부터 가져오게 된다. 예를들어, 배달앱이라고 가정했을 때 유저의 정보를 저장하는 User 테이블과 주문 정보를 저장하는 Order 테이블이 존재 할 것이다. 그리고 유저는 여러개의 주문을 가질 수 있으며, 주문은 하나의 유저에게 속하게 된다. 이러한 관계를 유저 입장에서는 주문과 1:N 관계이며 주문 입장에서는 유저와 N:1 관계를 가지게 된다. 그리고 이를 클래스로 표현하면 다음과 같다. @Entity @Getter @Setter public class User { @Id @GeneratedValue @Column(name = "member..
우리가 자주 사용하는 Youtube 앱을 보면 하단 탭이 다음처럼 구성되어 있다. 여기서 가운데에 있는 + 아이콘을 누르면 다음과 같은 모달창이 나타난다. 이와 같은 기능을 React Navigation 을 통해 구현해보겠다. 준비사항 "@react-navigation/bottom-tabs": "^6.2.0", "@react-navigation/native": "^6.0.8", "@react-navigation/stack": "^6.2.1", "react-native-modal": "^13.0.1", 구현을 위해 위 라이브러리들이 필요하다 npm 혹은 yarn 을 이용해 설치하자. 결과물 먼저 완성된 결과물을 먼저 보자. 홈화면은 다음과 같이 이루어져있다. 이곳에서 하단의 등록 메뉴를 클릭하면 이런 모달..
[ReactNative] iOS 디바이스 테스트하기 xcode: 13.3 iOS : 15.3 애플 개발자 계정 iOS앱을 자신의 디바이스에서 테스트하기 위해서는 애플 개발자 계정 이 있어야 한다. https://developer.apple.com/ 이곳에서 개발자 계정을 생성하자. 기존에 사용하는 Apple계정을 이용하면 된다. 테스트 진행 자신의 RN프로젝트 루트로 이동하자. 그 다음 /ios/프로젝트명.xcworkspace 를 눌러 xcode를 실행시키자 주의 : .xcodeproj 를 실행시키면 빌드에 실패할 수 있습니다. .xcworkspace 를 실행시켜주세요. xcode가 실행되었으면 TARGETS 를 자신의 프로젝트로 설정하고 General 옆에 있는 Signing & Capabilities..
단위테스트란? 단위테스트(Unit Test)는 가장 작은 하나의 모듈을 기준으로 독립적으로 진행 되는 테스트이다. 이는 하나의 클래스 혹은 메소드가 될 수 있다. 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트 하는 것으로 어떤 기능을 실행했을 때 기대하는 결과가 나오는지 테스트하는 방법이다. 왜 작성해야 할까 작은 기능들이 하나 하나씩 모여 하나의 애플리케이션을 이루게 된다. 만약 기능들 중 하나라도 문제가 있다면 이는 애플리케이션 전체의 문제로 이어질 수 있다. 만약 단위테스트가 작성되었고 정상적으로 테스트를 통과한다면 다른 곳에서 이 기능을 가져다 쓸 때도 이미 테스트가 되었기에 이 기능에 대한 걱정은 하지 않아도 된다. 또한 단위테스트는 환경에 독립적으로 작성되기에 빠르게 실행할 수 있다는 ..
- Total
- Today
- Yesterday
- ReactNative
- 백준
- dfs
- 중앙대학교
- BFS
- 그리디
- nestjs
- boj
- 백트래킹
- node.js
- 투포인터
- 스레드
- 컴퓨터 통신
- 동적계획법
- 그래프
- 컴퓨터 구조
- 세그먼트 트리
- 자바스크립트
- nodeJS
- nest.js
- 예외처리
- 벨만포드
- 자바
- 알고리즘
- typeORM
- Computer Architecture
- 재귀
- 구현
- java
- 시뮬레이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |