티스토리

검색하기내 프로필

블로그 홈

하루살이공부

구독자
2

구독하기 방명록
신고

인기글

  • form안에 button을 생성 후 onclick했지만 안됨공감수0댓글수0조회 3
  • [개인프로젝트] Redis 역직렬화 문제공감수0댓글수0조회 2
  • 영속성 컨텍스트와 트랜젝션공감수0댓글수0조회 1
공지velog 에서 티스토리로 이전!!

주요 글 목록

  • 2024년 쓸까말까 했지만 쓰는 회고록인가 싶지만 일기장인글 내용

    현재의 나를 말하자면 10개월차 된 스타트업 백엔드 개발자이다. 1. 개발 공부의 지속정확히 재작년에 시작한 개발공부...그래서 재작년에 이어 작년에도 계속 백엔드쪽 개발공부를 했다. 4학년 1학기와 병행하면서사실 쉽지 않았다. 어째든 부트캠프 + 학교 공부 병행하기 빡셌다 그래도.. 다행히 부트캠프안에 우수학생?? 느낌으로다가잘 수행해서 부트캠프에 참여한 프론트 개발자분들과 함꼐 프로젝트를 수행할 수 잇었다.수행하면서 느낌점... 팀플이니까 어째든 팀원들도 중요하고 분위기도 중요하다.. 어려운 상황들이 많았지만..마지막 마무리할때 프론트 개발자분 한분이 이렇게 메세지 주셨다.아.. 진짜 너무 감사했다. 이런말씀을 직접 해주셨다는게...  2. 이제 취업해야지..  이제 국비끝+ 부캠끝+막학기이니 이제는..

    좋아요2
    댓글0작성시간2025. 1. 9.
    게시글 이미지
  • 2024-12-02 회고록글 내용

    다사다난했던 2개월마지막 회고록이 10월달이던데... 그 이후 기간동안 정말 다사다난했다.사실 10월달 사이드 프로젝트를 진행한 이후 약간의 번아웃이 왔다. 작년 2월부터 국비를 시작하고 끝나자마자 복학하면서 부트캠프 시작하고 졸업하기전에 취준을 준비하면서 이번년도 5월달에 취업을 했다. 그리고 나서는 조금은 잘 흘러가겠지 라고 생각한 나의 하루하루가 직장에서의 고민이 많아졌다. 고민이 많아지니 불안감도 높아지고,,, 해당 불안감을 낮추기 위해 다른분들과 사이드프로젝트를 진행했다..그러다보니 약 1년반을 쉬지않고 달려왔다. 그냥 뭔가 맘편히 쉬는 날이 없었다. 그래서 아 이번년도까지는 휴식시간을 가져야겠다 라는 생각이 들어 정말 아무것도 하지않고 쉬었다. 쉼을 시작한지 2주차때아 이제 좀 숨이 트인다고 ..

    좋아요7
    댓글4작성시간2024. 12. 2.
    게시글 이미지
  • 2024-10-12 회고록글 내용

    오랜만에 회고록약 6개월차 스타트업 개발자로 재직중이다. 현재까지 한일은 사실 별로 없다. 핀테크 회사라 금융 규제가 심해지면 운영이 어려운 서비스라... 현재는 기획이 조금씩 추가될때마다 수정중이다. 그래서... 좀 할께 없어서.. 저번달쯤에?? 메인 프로젝트 코드 커버리지 측정하는 걸 추가했다. 또 RestTemplate deprecated된 거 남아있으면 RestClient로 마이그레이션도 진행했다. 조금 지쳤었다할일이 좀 마니 없었을때 조금 지쳤었다.. 무엇을 해야할지 몰라서.. 그래서 약간의 동기부여차 사이드프로젝트를 진행했다.프론트 1분과 디자이너 2분과 함께 약 5주간의 프로젝트를 진행했다. 그래서 그런지 동기부여가 약간되었다.안 적용해본 기술 스택도 적용해보고 배포도 AWS ecs, ecr..

    좋아요6
    댓글4작성시간2024. 10. 12.
    게시글 이미지
  • [사이드 프로젝트 : DevToolKit] 데이터 비정규화시키기글 내용

    현재 우리의 사이드 프로젝트 메인서비스 메인화면에서 폴더와 여러유형의 컨텐츠들이 함께 보여야한다.그러나 여기서 막히게되는데..  데이터 정규화 초기 테이블 설계 시, 나는 폴더와 다양한 유형의 컨텐츠(코드형, 게시판형, 파일형)를 정규화된 방식으로 구조화했다. 이를 위해 다음과 같은 세 가지 테이블로 분리하였다.폴더 도메인: 폴더의 기본적인 속성인 이름과 부모 폴더 정보만을 저장하는 구조로 설계했다. 폴더는 다른 컨텐츠와 구분되어 관리되는 독립적인 개체로 설정되었다.컨텐츠 도메인 1 (코드/게시판형): 이름과 내용만을 포함하는 단순한 구조로, 텍스트 기반의 컨텐츠를 저장하기 위한 테이블로 설계되었다. 코드와 게시판 글 같은 비파일형 컨텐츠는 이곳에 저장된다.컨텐츠 도메인 2 (파일형): 파일 컨텐츠에 특..

    좋아요7
    댓글3작성시간2024. 10. 4.
  • [사이드 프로젝트 : DevToolKit] 왜 트랜젝션 Requires_new가 안되는가?글 내용

    유저관련된 로직을 하다가 맞다은 에러?? 비밀번호 5회틀릴시 로그인 막기 현재 유저가 로그인할때 5회 틀릴시 로그인을 막고 있다. fun login(request: UserLoginRequest): UserLoginResponse { val user = userRepository.findByEmail(request.email) ?: throw RestException.notFound(ErrorMessage.NOT_FOUND_USER.message) if (!user.isEnabled || !user.isVerified) { throw RestException .badRequest(ErrorMessage.IMPOSSIBLE_LOG..

    좋아요0
    댓글0작성시간2024. 9. 20.
  • 어쩌다 보니 사이드 프로젝트..ㅎㅎ글 내용

    사이드프로젝트를 진행하게 되었다.일단 혼자 프로젝트하기엔 계속 쳐지기도 하고,,, 뭐가 프론트도 있으면 좋을것같다.. 라는 생각이 들어서 이번에는 디자이너 2분, 프론트 개발자 1분, 백엔드 개발자 1명(나) 이렇게 진행하게 되었다. 일단 적용해보고 싶은 것도 많고 배포도 잘해보고 싶고...  머리를 싸매면서 어떻게든 열심히 해보겠습니다.파이팅..!

    좋아요0
    댓글0작성시간2024. 9. 10.
  • 요청에 대하여 쓰레드는 어떻게 획득하는가?글 내용

    갑자기 프로젝트하다가 쓰레드, 쓰레드풀이 궁금해지면 쓰레드는 간단하게 worker라는건 알겠는데,..그래서 요청에대해서 누가 쓰레드를 할당해줄까??가 궁금해졌다. Tomcat이 시작할때 원초적으로 돌아가서 결국 쓰레드풀세팅과 쓰레드에 대한 세팅은 누가 해주는 걸까??로 시작해서 디버깅을 시작했다.먼저 정리한 상황을 말하자면1. Http11NioProtocol(AbstractProtocol) : 엔드포인트 새로운거 세팅2. AbstractEndPoint(NioEndPoint, AbstractJessEndPoint) : 초기화 과정3. Http11NoiProtocal : 위에서 초기화과정을 거친 EndPoint setter4. 앞선 Endpoint : 쓰레드 할당5. CoyoteAdapter : 세팅6. A..

    좋아요1
    댓글0작성시간2024. 8. 30.
  • [개인프로젝트 리팩토링] 멀티모듈에 대한 회고..?글 내용

    최근 모듈을 추가하면서 후회?? 회고?? 한 느낌을 작성하고자 한다.  현재 모듈 구성  간단히 이미지로 보자면 이런구성이다. 일단 멀티모듈로 COMMON, CUSTOMER, FCM, JOB ,WALKER 총 5개의 모듈로 구성중이다.여기서 COMMON에 domain관련된 엔티티와 CUSTOMER와 WALKER에 공통적으로 쓰이는 AUTH(로그인, 토큰)관련 로직들이 있다. 그래서 CUSTOMER와 WALKER관련된 코드를 작성한후 FCM코드를 짤때 dependency에 COMMON모듈을 추가해야하나?? 하는 고민이 있었다. 그러려면 AUTH관련된 코드들 떄문에 OpenFeign, Redis와 관련된 설정값을 넣어줘야했다. 그것은 매우 쓸모없는 행위라고 생각했다.일단 FCM에서 관련된 코드들을 사용하지 ..

    좋아요1
    댓글0작성시간2024. 8. 21.
    게시글 이미지
  • [개인프로젝트 리팩토링] 데이터베이스 레플리케이션 적용하기글 내용

    데이터베이스 레플리케이션을 적용해보았따.  레플리케이션 왜 필요한가? 보통 개인프로젝트 하다보면 데이터베이스를 한대만 운영한다. 데이터를 읽고 쓰는 작업이 하나의 데이터베이스에서 수행된다는 의미다 근데 갑자기 트래픽이 폭주했다고 가정해보자.DB관점에서는 크게 2가지문제가 발생가능하다. 1. SPOF물론 트랙픽에 대응해 DB성능 한대의 성능을 Scale up하는 방법도 존재한다. 그러나 한대의 데이터베이스가 다운될 경우 그냥 서비스가 다운이다. 데이터를 백업하지 않았다면 더 큰일... 그래서 SPOF 하나의 장애가 시스템 전체 장애로 이어지는 상황이 발생하게 된다. 2. 성능저하하나의 데이터베이스에 읽고 쓰는 작업이 모두 일어나다보면 부하가 늘어난다. 물론 이부분도 DB성능을 향상시키는 방법도 존재하지만...

    좋아요0
    댓글0작성시간2024. 8. 3.
    게시글 이미지
  • [개인프로젝트 리팩토링] Actuator, Prometheus, Grafana 구축글 내용

    이미 어느정도 모듈로 나누고 코드를 80%이상 짠 상태라서 모니터링 환경을 구축해보았다. 구조 구조라고 말하기에 애매하지만 Spring boot의 메트릭정보를 Prometheus가 수집하여 해당 내용을 Grafana가 시각화한다. 1. 디펜던시 추가implementation 'org.springframework.boot:spring-boot-starter-actuator'runtimeOnly 'io.micrometer:micrometer-registry-prometheus' 이후 localhost:{포트}/actuator에 접속해보면 요렇게 제공하는 엔드포인트들이 나온다.Prometheus에서 사용되는 메트릭을 노출시키기 위해 밑의 내용을 yml에 추가한다.management: endpoints: ..

    좋아요0
    댓글0작성시간2024. 8. 3.
    게시글 이미지
  • [개인프로젝트 리팩토링] 리팩토링 계획글 내용

    최근에 쉬다가 개인프로젝트를 조금 널널하게 리팩토링중이었다. 그래서 무엇을 리팩토링하고 있는지 정리해보고자 한다.그에 대한 자세한 얘기는 차차 다룰 예정이다. 프로젝트 리팩토링 첫번째로 멀티모듈개인프로젝트에는 지금 Customer와 Walker가 섞여있다. 그니까 약간 Admin코드랑 Customer 코드가 한 프로젝트에 섞여있는 느낌??그래서 모듈을 나누고자 한다. 1. Common 모듈domaincommon code (위치, auth 관련)2. Customer 모듈산책 알바를 신청한 고객3. Walker 모듈산책 알바를 하는 고객(알바생느낌)4. Batch 모듈Spring Batch관련 코드이렇게 4모듈정도로 나눌 예정이다.사실 Common모듈은 조금 애매함이 있어서 나중에 고민좀 해볼 예정  두번째..

    좋아요0
    댓글0작성시간2024. 8. 1.
  • 왜 swagger에서는 괜찮은데 테스트코드에서 LazyInitializationException이 터지는가?글 내용

    코드짜다가 swagger로 테스트를 했을때는 괜찮아서 pr을 올렸느데 팀원중 한분이 이거 Lazy예외 안터지냐고 물어보셨다. 그러면서 트랜젝션 어노텡션 붙여야하지 않아요? 하셔서 엥..? 나는 swagger에서 됬는데 싶었다.그래서 일단 swagger테스트해봤는데 되었다고 말씀드렸다. 근데 내가 테스트코드를 까먹고 안한것이다..ㅎㅎ그래서 테스트코드를 짰는데 엥?? LazyInitializationException 바로 터지쥬...? 그래서 트랜젝션을 해당 서비스 코드에 붙였더니 테스트코드가 잘 통과했다.왜?? swagger에서는 잘되었는데 테스트코드에서는 예외가 터진건지,,, 급 궁금해짐,, 일단 트랜젝션 로그를 보자  일단 처음에는 LazyInitializationException자체가 트랜젝션과 관계..

    좋아요0
    댓글1작성시간2024. 6. 7.
  • Delete와 Insert의 트랜잭션 문제글 내용

    일중에 S3이미지를 삭제 + 데이터 삭제 후에 다시 S3이미지 넣고 데이터 삽입하는 로직이 있었다. 즉, 수정하는 로직.근데 S3이미지까지는 잘 삭제가 되는데 데이터가 삭제가 안되고 삽입만 되는 것이다... 그래서 보자마자,, 아 트랜젝션 같은데,,, 싹 냄새가,,, 그래서 집에 와서 한번 테스트해보았다. 코드 게시물과  댓글 엔티티가 존재한다. 여기서 정말 말도안되지만.... 게시글이 수정할때 댓글도 같이 수정되어 댓글이 모두 삭제후 -> 새롭게 Insert한다고 가정한다. @Entityclass Post( var content: String,) : BaseEntity() { @OneToMany(mappedBy = "post", cascade = [CascadeType.ALL]) val..

    좋아요2
    댓글1작성시간2024. 6. 2.
    게시글 이미지
  • Git merge 전략글 내용

    맡아진 업무를 하고 merge할때... 항상 merge에 대한 두려움에 팀장님께 물어보고.. 한다...매번 그럴수는 없으니 회사에서 사용하는?? Git과 관련된 것들을 정리해볼까 한다. Git merge 나에게 깃이란 그냥 코드를 올린다 정도여서 Create Merge Commit / Squash and Merge / Rebase and Merge의 차이를 잘 몰랐다. 1. merge - fast forward예를 들어 main 브랜치에 develop 브랜치가 있다고 가정하자.이때 main 브랜치에는 새로운 커밋이 아예 없다. 그렇다면 develop브랜치가 최신 브랜치라고 할 수 있다.이때 main 브랜치에 그대로 develop브랜치의 이력을 가져오는 것이다(즉 main은 아무 커밋도 없어야한다.)  2..

    좋아요0
    댓글0작성시간2024. 5. 17.
    게시글 이미지
  • JpaRepository를 상속하지 않는다.글 내용

    회사 코드를 보다가 Repository 코드를 보았는데 신기했다.JpaRepository를 상속하지 않고,PagingAndSortingRepository을 구현한 인터페이스? 그리고 QuerydlsPredicateExecutor를 사용했다.보고 왜일까?? 의문이 들어 회사에서 아직 업무가 없을때라서 한번 찾아보았다. 불필요한 메서드들 JpaRepository를 사용하여 자동완성?? 기능같은걸 사용하다보면정말 다양한 메서드를 자동으로 제공한다.즉 사용하지 않는 메서드들이 너무 많다. 내가 프로젝트했을 경우도 위 이미지에서 사용하지 않은게 아마 2/3?? 일때도 있다. 이외에도 테스트할때도 fake 객체를 만들어서 한다고 한들 repository 인터페이스의 메서드들을 모두 오버라이딩해야한다.즉 불필요한 부..

    좋아요0
    댓글0작성시간2024. 5. 12.
    게시글 이미지
  • [Kotlin] 기초 개념 (2)글 내용

    이전 블로그에서 헷갈리는 기초개념을 정리했다. 이번 블로그에서도 헷갈리는 기초개념을 정리할 예정이다. 인터페이스 자바의 경우 implements, extends를 사용하여 구현과 상속을 했다. Kotlin에서는 공통적으로 ":"을 사용한다. 인터페이스 메서드 구현은 override 변경자를 반드시 붙여야함 interface Click { fun click() } class Button: Click { override fun click() { prinln("click Button") } } open, final, abstract 변경자 : 기본 final Kotlin은 기본적으로 모든 클래스, 메서드 final class 임으로 open class, method인 경우 상속가능 open class Cust..

    좋아요0
    댓글0작성시간2024. 4. 20.
  • [Kotlin] 기초 개념 (1)글 내용

    Kotlin을 공부해야하는 상황이라 부트캠프에 있는 Kotlin 기초개념 중 헷갈리거나 처음본 개념들을 정리할 것이다. 공부하면서 느낀점은 확실히 Java보다 편리한점은 존재하지만 뭔가 헷갈린다고 할까나...??? 그런 부분들 정리할 예정 문자열 템플릿 // kotlin val name = "DalBeen" println("Hello, $name!") println("Hello, ${if(age>26) name else "Dog"}!") // java String name = "DalBeen"; System.out.println("Hello, " + name + "!"); 보통 자바에서는 항상 ""+""을 통해서 변수값을 넣었는데 Kotlin은 위와 같이 편리함을 제공해준다 $+문자열 -> 문자열 리터럴..

    좋아요0
    댓글0작성시간2024. 4. 18.
  • 2024-04-14 일주일 회고록글 내용

    최종면접 최종면접이 하나 내일 잡혔다... 두근두근... 1,2차 모두 기술면접이였던지라 뭔가 인성면접의 느낌이 좀더 커서 그쪽으로 준비중이다. 잘하고 싶다..! 일단 회사자체가 원하던 분야이고 스타트업이라서 출시부터 유지보수, 개선까지 함께 할 수 있음에 너무 매력적이다. 오늘까지 열심히 해서 내일꼭 합격해야지!!!! 곧 시험기간 아 곧 학교 시험기간이다.. 다행히 2과목 듣는다.. 한과목은 예상문제 주신다고 해서 다행인데... 한과목은 수업을 들음에도 불구하고 이해가 안된당....ㅋㅋㅋㅋㅋ 일단 내일 면접까지 마무리하고 공부해야징 합격해랏합격해랏 마법을 부리자! 내일 합격할 것이다 라는 마인드 셋으로 조금만더 열심히 준비하자..! 합격하면 관련 분야 책도 읽고 기술스택도 공부해야지..ㅎㅎㅎ 나의 간절..

    좋아요0
    댓글0작성시간2024. 4. 14.
  • 2024-04-07 일주일 회고록글 내용

    좋았던 면접경험? 이번주 목욜에 온라인으로 기술면접??을 보았다. 평??을 하자면 좋았다. 뭐랄까 나도 최선을 다해 답을 했지만 헷갈리거나 모르는게 존재했다. 근데 면접관님이 모르는 것을 그냥 넘어가는 게 아니라 이건 이래서 그런거에요 하면서 알려주셨다. 이부분이 너무 좋았다. 뿐만 아니라 과제가 있었는데 부족한 부분 또는 어색하 ㄴ부분에 대해서도 얘기해주셔서 너무 좋았다. 해당 면접결과는 합격이었다. 물론 담주에 최종면접이 하나 남았다. 다만 질문해주시고 답변해주신 면접관님과 일하면 좋을 것같다는 생각이 들었다 다음주 면접 두개 최종면접 하나랑 또 면접 하나가 있다. 근데 둘다 회사 위치가 비슷하다. 아마 두 회사가 걸어서 10분차이밖에 안날껄?? ㅋㅋㅋㅋ 그래서 일단 월욜에 면접하나 보고 다음 화욜에..

    좋아요0
    댓글1작성시간2024. 4. 7.
  • 2024-03-31 일주일 회고록글 내용

    실망과 감격의 어디사이..? 이번주에 가고 싶었던 회사의 과제전형에 떨어졌다. 음 규모는 작은 스타트업이었지만 그냥 서비스자체가 친숙해서 되면 좋겠다 라는 마음이있었다. 근데 떨어졌다..ㅎㅎㅎ 뭐 생각해보면 2년차 공고였다. 당연히 2년차 실무 개발자들이 과제전형에서는 나보다 앞설수밖에 없다곤 생각한다. 일단 실무에 있어봤기에 뭐랄까 실무 상황을 더 반영한 코드가 나올것이기 때문에..?? 그래도 아쉽다.. 그럼에도 감격이라는 단어를 쓴 이유는 면접일정이 잡히고 있기때문이다. 3월달까지만해도 면접 하나밖에 안잡혔는데 현재는 3개?정도 잡혔다. 감격스럽다... 물론 서합이 다되고 있는건 아니다.. 내가 보기엔 서합은 5-7% 정도 되는 것같고 거기서 면접까지 2-3 %정도 되는 것같다. 힘내자 힘!! 요즘 ..

    좋아요0
    댓글0작성시간2024. 4. 1.
문의안내
  • 티스토리
  • 로그인
  • 고객센터
© Kakao Corp.