취업후기2025. 4. 9. 00:1230대 중반 1년동안 공부하고 개발자 취업후기

길고 길었던 1년 공부하면서 결국 취업은 했다난 내가 사실 나이가 많고 부족하다 생각해  SI가서 고생할줄 알았다. 그동안 노력한게 아까워서 뻥튀기 SI는 가지않고 학원6개월다니고 혼자 6개월 더 준비했었는데 결국 잘한일이 됬다. 이름있는 서비스기업 서류합격은 했었지만 더 이상 진행하지않았다. 시간부족으로 코딩테스트 준비를 못해서... 도저히 2주동안 코테 준비할 시간이 아니란걸 알았다. 오프라인이면 상관없겠는데 라이브코테라서 ㅠㅠㅋ 엄두가 도저히 안났다.과감히 포기하고 완전히 합격한 곳에 집중하기로 했다.  그래서 중소기업 IT팀에 들어오게 되었다. 내 실력이 부족해 보였지만 그동안한 노력,열정과 인성이 좋아보여 뽑으셨다고한다. 아 그리고 정처기도 한몫했다 이거없으면 안뽑으셨을거라고 하셨다나도 내가 실..

개인스터디2024. 12. 6. 12:13내가 했던 인터페이스에 대한 오해와 진실

인터페이스에 대해 공부하면서 인터페이스는 규약이기때문에 모든 기능을 그대로 써야한다라고 되어있는데배열을 쓰다보면 private final List beverages = new ArrayList(); 예시로 위와 같은 코드로 List는 인터페이스 인데왜 부분적인 기능을 써도 오류가 안나는것에대한 의문이 생겼다.이는 인터페이스와 구현체의 차이이기 때문인데 다음과 같이 정리 할 수 있다. 인터페이스 란?인터페이스는 구현해야할 메서드의 규약(계약)을 정의한 것 , 하지만 중요한 점은 구현체가 이 규약을 어떻게 구현할지는 자유이다.인터페이스는 “무조건 이메서드를 정의해야한다”는 규약을 제공 하지만 구현 방법은 클래스 마다 다를 수 있다.만약 내가 직접 인터페이스를 구현하는 클래스를 작성시, 인터페이스에 정의된 모..

Jest test메서드 호출이 안되는 에러
개인스터디2024. 12. 4. 20:02Jest test메서드 호출이 안되는 에러

jest쪽 공부하면서 npm으로 @type/jest와 jest 다 설치 잘해줬는데 실행기 메서드를 못찾는 에러가 발생하였다. ts(2582) 에러 : 주로 TypeScript가 프로젝트의 설정파일(tsconfig.json)을 찾을 수 없을 때 발생한다. 이런 경우 TypeScript는 "암묵적 프로젝트" 모드로 작동하며, 기본값으로 컴파일하려고 시도한다. 암묵적 프로젝트 모드는 제한적이고 일부 타입스크립트 기능이 제대로 작동하지 않을 수 있습니다. 스택오버플로우 와 구글링으로 여러가지 설정을 찾아봤는데 잘 되질않아서tsconfig.json 설정을 하는것을 보고 따라하려다가 tsconfig.json 에 아무설정도 하지않고생성만으로 에러가 해결되었다.  이유를 찾아보니 일단 ts-jest는 타입스크립트 설정..

Nest JS Interceptor, transaction (AOP)
개인스터디2024. 12. 2. 00:42Nest JS Interceptor, transaction (AOP)

Interceptor는 NestJS의 Lifecycle의 일부 중 하나로,`req`와 `res` 사이에서 요청과 응답 데이터를 가로채(intercept) 가공하거나 처리한 후, 컨트롤러나 클라이언트로 전달하는 역할을 합니다. NestJS의 Interceptor는 AOP(Aspect-Oriented Programming)에서 영감을 받아 설계되었습니다.AOP의 핵심은 핵심적인 비즈니스 로직과 독립적인 공통 관심사(Cross-Cutting Concern)를 분리하여 이를 재사용 가능한모듈(Aspect)로 관리하는 것입니다. 여기서 "Aspect"란 로깅, 트랜잭션, 보안 검사처럼 여러 로직에서 공통으로 필요한 부가적인 기능을 의미합니다.   NestJS의 Interceptor는 이러한 AOP의 목적과 철학을..

Nestjs 직렬화, 역직렬화 (@Transform)
개인스터디2024. 11. 25. 12:04Nestjs 직렬화, 역직렬화 (@Transform)

Serialize(직렬화) : 객체를 응답 데이터(JSON 등)로 변환할 때 사용Deserialize(역직렬화) : 요청 데이터를 객체(DTO)로 변환할 때 사용 왜 직렬화와 사용하는가?1. 예를들어 클라이언트와 서버는 서로 다른 시스템이고, 데이터를 교환하기 위해서는 JSON, XML 등과 같은 표준 형식으로데이터를 변환해야한다.2. 서버의 객체 데이터를 그대로 클라이언트로 보내거나, 클라이언트에서 온 데이터를 바로 객체로 사용할 수 없습니다.(서버에서 사용하는 객체는 프로그래밍언어의 내부 데이터 구조, 통일된 형식 필요 , 클라이언트 JSON 데이터 사용한다면 변환하지않고 보내면, 클라이언트는 이를 해석할 수가 없다.)3. 보안적으로 클라이언트가 알 필요없는 민감한정보를 감춰서 보낼수 있다.4. 복잡..

Nestjs 모듈화 철학
개인스터디2024. 11. 19. 00:36Nestjs 모듈화 철학

NestJS를 공부하면서 `@Injectable()` 데코레이터만 붙이면 의존성 주입이 되는 줄 알았습니다. 하지만 실제로 실행해보니 원하는 대로 동작하지 않았습니다. 왜 그런 걸까요? NestJS의 의존성 주입(DI) 메커니즘을 이해하기 위해 알아보았습니다. 1. 왜 @Injectable()만으로는 충분하지 않은가?NestJS에서 의존성은 모듈 컨텍스트(context)에 의해 관리된다. 즉 , 모듈 기반 DI 컨텍스트 이기 때문이다.  의존성 주입 범위:providers로 등록된 클래스는 해당 모듈 내부에서만 기본적으로 주입됩니다.다른 모듈에서 사용하려면 , 해당 모듈을 imports하고,  필요한 의존성을 exports로 공개해야합니다. 예를들어 아래와같이AuthService는 AuthModule에 ..

Javascript 몽고 DB  연결하는법(노드)
개인스터디2024. 10. 27. 01:27Javascript 몽고 DB 연결하는법(노드)

몽고db 아틀라스에서 클러스터 생성후 test 위한 로직 작성.  몽고디비 연산자도 여러 종류가 있다.

Mybatis 매핑 관련 문제
개인스터디2024. 10. 23. 23:45Mybatis 매핑 관련 문제

로그인해서 데이터로 id를 받아와 검증을 하고 DB에서 멤버 전체를 받아와 하면에 해당 id의 이름을메인화면에 뿌려주는 로직을 짰는데 아무값이 안받아와져서 DB에 직접 SQL문을 쳐봤는데 문제 없어서로그를 찍어봤다.로그를 보니 프론트쪽에서는 로그인데이터를 잘 받아오나 반환해주는 값이 null 이었는데 해당값을 Mapper 에 던져주다보니 반환해주는 Mapper쪽 문제라 생각되어서뚫어져라 봐도 틀린게없어서 문득 카멜케이스, 스네이크 케이스 생각이나서 컬럼을 mem_userid 이런식으로 해놓고반환되는 값도 컬럼명 그대로 mem_userid 로 반환되니 DTO값과 매핑되지않으니 null 값이 뜬다고 생각되서이 방향으로 해결하였다매핑해주는 방법은 2 가지가있는데 mapperconfig.xml 설정 아니면 ma..

image