전체 글

sin prisa pero sin pausa
소소한 생각/상념

현생을 살았다.

현생을 사느라 블로그 관리가 뜸했다.(사실 관리랄것도 없는 기록 블로그긴 하지만) 한동안 많은 일이 있었다. 1. 이직 이직 한지 5개월이 자나간다. 현 직장에 적응하고 사람들과 친해지고 일을 해나가고 있다. 기존에 하던 java프로젝트는 이어서 하면서 go 프로젝트를 같이 겸하고 있고 현 직장이 aws와 비슷한 서비스를 제공함에 따라 k8s 등 cloud 환경을 다소 경험중이다. 2. 공모전에 통과했다. 작년에 떨어진 '관광데이터 활용 공모전'에 다시금 지원했다. 주제는 작년과 똑같이 tour api를 활용한 앱 또는 웹이었고 이번에는 좀더 공을 들여 기획서를 제작해 제출하였다. 놀랍게도 기획서가 통과되어 1차 합격자 명단에 들 수 있었다. 친구가 ios 개발자라서 프론트를 맡고 내가 백엔드를 맡아 앱..

개발자의 삶/JPA

[JPA] Proxy, Lazy & Eager Loading, Cascade, Orphan

## Proxy 프록시 em.find() // DB를 통해 실제 엔티티 객체 조회 em.getReference() // DB 조회를 미루는 가짜(프록시) 엔티티 객체 조회 - 프록시 객체를 초기화 할 때 프록시 객체가 실제 엔티티로 바뀌는 것이 아니라 초기화되면 프록시 객체를 통해서 실제 엔티티에 접근 가능. - 프록시 객체는 처음 사용할 때 한 번만 초기화. - 프록시 ≠ 엔티티. - instanceOf 사용. (객체와 비교) - 프록시 객체는 원본 엔티티를 상속받음 - 영속성 컨텍스트에 이미 엔티티가 존재하면 프록시를 따로 반환하지 않음 (getRefer 해도 프록시가 아닌 엔티티 반환) - 프록시 먼저 호출하고, 엔티티를 호출하면 엔티티도 프록시를 반환함 - 영속성 컨텍스트를 날리면( em.deta..

개발자의 삶/JPA

[JPA] Persistence Context, Relationship Mapping, Inheritance Mapping, MappedSupperClass

- Persistence Context 영속성 컨텍스트 - 1차 캐시 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Member member = new Member(); member.setId(1); // 멤버 클래스 내 id가 1 em.find(Member.class, member); // 조회 쿼리 날림 em.find(Member.class, member); // 조회 쿼리 날리지 않음 // persistence contex..

개발자의 삶/JPA

[JPA] Entity Mapping

** Transaction 안에서 하는 것이 중요 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); //do something tx.commit(); em.close(); emf.close(); @Entity //@Table(name = "mbr") // Member 객체를 mbr 테이블에 매핑 public class Member { @Id // primary key // 값 직접 할당 //@GeneratedValue // 값 자동 할당 p..

개발자의 삶/JPA

[JPA] JPA vs hibernate vs Spring Data JPA

JPA ? - Java Persistence API - 자바 진영의 ORM 기술 표준 - 기술명세 ORM ? - Object-Relation Mapping - 객체는 객체대로, DB는 DB대로 - SQL Mapper 로 직접 query를 만들어 DB조회 > mybatis - 객체와 DB의 데이터를 매핑해서 query 자동 생성 > JPA Hibernate ? - JPA의 구현체 - DataNucleus, EclipseLink 등 다른 구현체도 존재. Spring Data JPA ? - JPA를 쉽게 사용하기 위해 스프링에서 제공하는 프레임워크 아래는 유명한 개념도 1. Application 2.1 JPA (Raw JPA 사용) 2.2 Spring Data JPA (Repository 사용) > JPA 3..

개발자의 삶/JPA

[JPA] study note

개발자로 일하면서 거의 대부분의 프로젝트는 mybtis를 사용하여 개발했다 JPA는 겉 핥기식으로 토이프로젝트 정도만 진행해보았다 최근 이직 준비를 하면서 JPA를 사용,요구하는 회사가 많아졌다는걸 깨달았다. 물론 현재 회사에서도 JPA를 사용하진 않는다 JPA를 사용해보지 않았기에, 아무래도 이직 준비할때 JPA를 사용하는 회사들은 선택권에서 제외됐다. (사실 JPA를 사용하는 곳도 지원은 해봤지만 면접에서 JPA에 대한 이해도가 높지 않아 좋은 결과를 맺긴 힘들었다.) 더 효율적인 개발을 위해 단단한 내 자신을 만들기 위해 그렇게 JPA 공부의 서막이 올랐다. 내돈내산으로 김영한님의 JPA 강의를 인프런에서 듣기 시작했고 구글링으로 많은 대단한 개발자분들의 도움을 받을 예정이다. 제대로된 정리 글을 ..

개발자의 삶/Spring

[Spring] Message (feat, 다국어 처리)

오늘 옆자리 신입분이 질문을 하셨다. "다국어 처리를 하는 중인데, properties 에 있는 내용들을 Controller에서 쓸 수는 없나요?" Controller 단에서 작업시에 환경(로컬, 개발)마다 다른 작업을 하려고 할때는 env(Environment, 환경변수)를 통해 구분했었다. 환경변수 관련해서는 구글링 해보면 좋을 것 같다. MessageSource 객체를 이용하여 properties 파일을 등록해주면 Spring message 를 사용 가능하다. ResourceBundleMessageSource 와 ReloadableResourceBundleMessageSource 가 있는데 후자는 서버를 가동되는 중에도 수정이 가능하다는 점이 있다. 자세한 내용은 구글링 해보면 좋을 것 같다. Sp..

개발자의 삶/Algorithm

[프로그래머스] 최대공약수와 최소공배수

문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예nmreturn 3 12 [3, 12] 2 5 [1, 10] 입출력 예 설명 입출력 예 #1 위의 설명과 같습니다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 합니다. 정말 간단한 문제다 수포자 개발자(?)로서 최대공약수와 최소공배수의 기억이 가물가물해서 다시 찾아..

소소한 생각/북킷리스트

2021 책 회고

- 2021 아몬드 - 손원평 (2021.1 완독) // 지인의 추천을 받아 가볍게 읽은 책. 내용이 가볍진 않지만 같이 응원하면서 보게되는 책 ★★★★★ 촘스키처럼 생각하는 법 - 노르망 바야르종 (2021.1 완독) // 생각론(?)적인 심리 관련 책인줄 알았지만 그런내용은 아니었다. 생각보다 읽기 어려웠다. ★★ 나미야 잡화점의 기억 - 히가시노 게이고 (2021.2 완독) // 동화같고 마음이 따뜻해지는 책. ★★★★☆ 창문을 넘어 도망친 100세 노인 - 요나스 요나손 (2021.2 완독) // 유쾌한 할아버지 이야기. 그럴듯한 상상과 전개. ★★★★☆ 오만과 편견 - 제인 오스틴 (2021.3 완독) // 내용은 모르고 책이름만 알았던 책. 심리책인줄 알았으나 고전 연애소설. ★★★ 강원국의 ..

세상만즐/책

옆 동네 사람 사는 이야기 [불편한 편의점 - 김호연]

아무생각없이 간단한 책이 읽고 싶어졌다. 따뜻한 책표지와 편의점이라는 친근한 이름 근데 왜 불편할까? 어디에나 있는 신파 혹은 그냥 소소한 이야기이겠거니 싶었다 와이프가 읽을려고 책을 꺼내 놨을 때도 이런 책들 내용뻔하지 하면서 어떤내용일까 하고 첫장을 읽었다. 어느새 한 챕터를 다 읽고 있는 나를 발견했고 이틀만에 다 읽게 된 책이다. 다 읽고 나서도 드는 생각은 진짜 별 거 없는 책이었다 그냥 사람 사는 얘기 옆 동네에 사는 건너건너 아는 사람 얘기같은 그런 내용들이었다 별 거 없는 사람들의 별 거 없는 사는 얘기 근데 그게 묘하게 빠져드는 몰입감이 있었다 주인공 '독고'를 기준으로 벌어지는 주변 사람들 이야기로 너무나 당연히 주변에서 일어나는 이야기들을 다루고 있었고 그럴수 있지, 맞지맞지 이런사람..

개발자의 삶/Algorithm

[LeetCode] Palindrome Number (with Go)

Given an integer x, return true if x is palindrome integer. An integer is a palindrome when it reads the same backward as forward. For example, 121 is a palindrome while 123 is not. Example 1: Input: x = 121 Output: true Explanation: 121 reads as 121 from left to right and from right to left. 뭔말인가 했다 palindrome 이 무슨 뜻인지 몰라서 검색을 해보려다가 예제를 보니 대충 주어지는 숫자(혹은 문자) 를 역순 정렬했을 때도 이전과 같은 것을 의미하는것 같다 ex, 1..

개발자의 삶/Algorithm

[LeetCode] Two Sum (with Go)

최근 Go 에 관심을 가지고 있습니다. 알고리즘 문제를 Java 혹은 Go로 풀어볼 생각입니다. LeetCode에서 기초적인 문제부터 풀어보았습니다. Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the answer in any order. Example 1: Input: nums = [2,7,11,15], target..

세상만즐/책

알지만 안 하고 못 하는 것 [왜 일하는가 - 이나모리 가즈오]

최근 '먼 북으로 가는 좁은 길 - 리처드 플레너건'을 읽고 나서 다시 자기계발서가 읽고 싶어졌다. '먼 북으로 가는 좁은 길'도 나름 재밌게 보았지만 딱히 리뷰를 하고싶을 정도의 뭔가가 느껴지진 않았다. 책에서 묘사하는 전쟁 속 이야기들은 확실히 잘 상상이 되는 것 같은 느낌을 받았다. '왜 일하는가' 우선 감상평부터 얘기하자면 나는 그냥 그랬다. 책 제목에 이끌려서 구매하게 된 책이었다. 나는 약간 심리학적인 요소가 담긴 책인줄 알았는데 내용은 그렇지 않았다. 책은 전반적으로 '열정적으로 묵묵히 일하다 보면 된다. 안된다면 그건 더 열심히 하지 않은 것이다.' 라는 내용이 주를 이루었다. 모두가 아는 내용이다. 당연히 열심히 해야하고, 내 일을 사랑하면서 노력해야하고, 그러다 보면 그만큼의 보상이 따..

개발자의 삶/IntelliJ

[Intellij] org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

결론 pom.xml 파일에 build 태그 안에 아래 소스를 넣어주니 해결되었다. src/main/java **/*.xml 이 에러 때문에 한참을 헤맸다. 구글링을 해봐도 namespace나 classpath가 잘못되었다는 정보들만 나왔고 나는 꼬박 하루를 잘못 적었거나 오타가 있나 확인했지만 해결하지 못했다. 그러다 mapper가 제대로 mapping이 되지 않았다는 글을 보고 순간 어? 하고 target폴더를 보니 정말 mapper가 build 되어 있지 않았다. 왜지? 평소대로 똑같이 했는데 왜 안될까를 다시 고민하다가 소스를 보니 평소에는 mapper를 resource 폴더 밑에 만들었었는데 새로 할당받은 프로젝트는 interface 부분에 mapper가 있었던 것이다. 왜 이상하다고 생각하지 않..

개발자의 삶/기타

[객체지향] SOLID 설계원칙

SOLID 설계원칙이란? 위키백과에서는 SOLID를 아래와 같이 서술하고 있다. 컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. 간단히 말하자면 '유지보수와 확장이 쉬운 시스템을 만들고자 할때..

세상만즐/책

밀지 말고 당겨라 [린스타트업 - 에릭 리스]

처음에는 TDD 에 대한 고찰이었다. 그러다 애자일 방법론에 대해 찾아보게 되었고 그러는 와중에 누군가 추천한 책이었던 것 같다. '린스타트업' 그냥 보기엔 스타트업, 창업에 관련된 책인것 같다. 물론 맞다. 허나 책을 읽어감에 따라 창업에만 국한되는 내용은 아니라고 느꼈다. 나한테는 단지 개발방법론 혹은 창업을 하게되면 어떻게 해라 라는 식의 단순한 내용이 아닌 개발자로서도 동기부여가 되는 꽤나 재밌는 책이었다. 당연하게도 책에서는 린(Lean)하게 일하는법, 회사를 운영하는 법 등이 나온다. 필자의 경험을 얘기하면서 실패담과 성공담이 오간다. 나는 애초에 애자일 방법론을 안다고 생각했고, 뻔한 내용이겠지 싶었는데 오히려 내가 멍청하다고 느꼈다. 필자가 진행했던 3D 아바타 관련 내용이 나오는데, 사업..

소소한 생각/상념

즐기면서 하는 것도 잊지 말고요

최근 2021 도쿄 올림픽으로 티비에서 경기를 자주 보고 있다. 그 중 신유빈 선수와 룩셈부르크의 니 시아리안 선수의 탁구 단식을 보게 되었는데 니 시아리안 선수의 경기 후 인터뷰가 감명깊었다. 오늘의 나는 내일보다 젊습니다. 계속 도전하세요. 즐기면서 하는 것도 잊지 말고요. 잊고 지냈다. 오늘의 나는 당연하게도 내일보다 젊다. 나 또한 크든 작든 계속 도전하고 있었다. 살다보니 살아가다보니 내 나름의 노력을 하고 있다는 방패로 그저 살아가고 있었다. 그저 사는게 나쁜 것 만은 아니지만 어느샌가 나한테 결여 되었던건 즐기면서 하는 것이었다. 지금보다 더 도전하고 더 노력하고 또한 즐기면서 살아야겠다. 니 시아리안 선수에게 감사하다.

개발자의 삶/Algorithm

[Codility] 4. FrogJmp

A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D. Count the minimal number of jumps that the small frog must perform to reach its target. Write a function: class Solution { public int solution(int X, int Y, int D); } that, given three inte..

개발자의 삶/Algorithm

[Codility] 3. OddOccurrencesInArray

A non-empty array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired. For example, in array A such that: A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9 the elements at indexes 0 and 2 have value 9, the elements at i..

개발자의 삶/Algorithm

[Codility] 2. CyclicRotation

An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place). The goal is to rotate array A K times; that is, each element ..

개발자의 삶/Algorithm

[Codility] 1. BinaryGap

A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binary r..

개발자의 삶/Algorithm

알고리즘 공부

나름 꾸준히 알고리즘 공부를 하고 있다. 많은 코테 연습 사이트가 있다. 프로그래머스, 백준, 코딜리티 등등 이 카테고리에서는 문제 풀어본 것을 기록해보려고 한다.

세상만즐/시

너를 기다리는 동안 - 황지우

시의 저작권으로 시의 내용은 올리지 않았습니다. 너를 기다리는 동안 - 황지우 마냥 연애하는 시 같다. 너를 기다리는 것 발자국 소리가 쿵쿵 들리고 그 소리가 너일것만 같은 기다리는 사람에게는 그 설렘과 긴장이 있다. 언뜻 봐도 곧 올 것 같은 너에 대한 기대감에 대한 시처럼 보인다. 그런데 왤까 몇 문장 읽었을 때 이 설레는 기다림이 슬프게 느껴졌다 시에서는 '아직' 아무런 말도 하지 않았는데 '너를 기다리는 동안 나도 너에게 가고 있다. 오지 못할 그 사람을 기다리는 혹시나 하는 마음에 금방이라도 짠 하고 나타날것 같아서 지나가는 모든 이가 너일것만 같은데 그런 너에게 나도 가고 있다는 시 라는 건 정말 묘하다.

세상만즐/시

아비 - 오봉옥

시의 저작권으로 시의 내용은 올리지 않았습니다. 아비 - 오봉옥 그렇게 아버지가 되어간다. 우리들의 아버지가 그랬듯이 우리들도 아버지가 되고 우리 아들들도 아버지가 될 것이다. 나에게도 이런 기억이 있다. 어릴적 아빠는 맛있는걸 자주 사오셨다. 단지 회사에서 회식을 하더라도 음식이 맛있으면 꼭 나를 위해서 더 사오셨다 아빠가 회식을 하고 올때면 술냄새가 나고 아침에 면도한 턱수염은 집에 올때면 까끌까끌하게 자라서 따가웠지만 그런 아빠가 좋았다. 그 '아빠스러움' 그때는 아빠가 어떤 생활을 하고 어떻게 살아왔는지 잘 모르지만 '아빠'란 무릇 그런 모습이다 라는 것이 나한테 각인 되었던 것 같다. 아직 아빠가 되진 않았지만 나도 아빠같은 아빠가 되고싶다. 아빠도 아빠가 처음이었을텐데 어떻게 아빠가 될 수 있..

Kedric
KeLog