기록하며 성장한다 - 개발, 회고

분류 전체보기 45

[ F-lab ] 멘토링 5주차 회고록 : 습관

우리 인생에서 가장 강력한 힘은 "습관"이다. 서론 다섯 번째 멘토링 시간이 되었다. 벌써 내가 멘토링을 시작한 지 한 달이라는 시간이 지났다는 이야기였다. 총 4개월 과정인데, 벌써 4분의1이 지나간 것이다. 한 달이라는 짧은 시간이었지만 분명 많은 변화가 있었다. 생각의 변화, 지식의 변화.. 그리고 습관의 변화였다. 단순히 구현만 생각하는 개발자가 아니라, 기초와 지식이 얼마나 중요한지, 그리고 Why라는 생각이 왜 중요한지를 알게 되었고, 하루하루 조금씩 늘어가는 지식의 즐거움을 알게되었다. 무엇보다 공부를 진득히 할 수 있는 습관이 내 안에 생겼다. * 4주차 멘토링에서는 개발 피드백과, 이력서 피드백이 주 내용이어서, 다른 질문들은 없었다. 그러나 베타적 잠금을 해결하는 방법을 생각하여 CRU..

일반 회고록 2023.11.23

[ 개발 이슈 해결 ] Redis 이상한 문자가 key로 저장되는 문제 해결

이슈 Redis에 Key를 저장 시 이상한 문자와 함께 16진수의 숫자가 저장되는 문제가 발생 해결 Config를 통해 해결 함. @Bean public RedisTemplate redisTemplate() { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueS..

[ 개발 이슈 해결 ] 멀티스레드 테스트 중 오류 발생

이슈 멀티스레드 환경에서 게시판 조회수가 어떻게 올라가는지를 테스트 하였음. 그 때 Exception in thread "pool-1-thread-14" org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query 오류 발생 해결 Service에 @Transactional 을 추가하지 않아서 발생한 오류 특히, native Query는 JPA와 다르게 자동으로 트랜잭션 처리가 안됨. 그래서 꼭 붙여줘야 함.

[ 개발 이슈 해결 ] application.properties 작성하는 민감 정보가 github에 올라가지 않게 하는 방법

이슈 application.properties 에는 DB정보나 Redis 정보등이 들어간다. 해당 정보가 그대로 github에 올라가면 안되기 때문에, 이걸 관리해주는 방법이 필요하다. 해결 1. application-aws.properties 라는 properties를 만든다. 2. application-aws.properties 에 DB나 Redis 등의 민감 정보를 입력한다. 3. application.properties에는 spring.profiles.include = aws 만 작성한다. 4. .gitignore에 ### IntelliJ IDEA ### 아래에 applicatoin-aws.properties 을 작성한다.

[ 개발 회고록 ] JPA nativeQuery와 SpringBoot를 이용한 CRUD 개발

해당 포스팅은 JPA native Query와 Spring Boot를 이용한 CRUD 개발 1편이다. F-lab 멘토링 과제를 위한 개발을 진행중이며, 멘토님께 피드백을 받으며 개발을 할 때 신경써야 하는 부분을 찾아가고 있다. 간단한 CRUD를 개발해 보기로 했다. 퇴사를 한 이후, 이론 공부도 좋지만 개발의 감을 잃지 않기 위해서도 있고, F-lab를 하는 중 멘토님이 만들어보라는 과제를 주셨기 때문이다. 다만 걱정인 부분은 이전에 다니던 회사에서 개발하던 방식이 손에 익어있는데, 그 방식이 너무 오래된 개발 방식이라는 점이다. 그래서 개발을 하면서 중간중간 피드백도 받고, 그에 따라 수정하는 식으로 진행하려 한다. 참고로 해당 글은 CRUD 개발을 알려주는 글이 아닌, 필자가 개발을 하고 그 코드 ..

개발 회고록 2023.11.21

정보처리기사 자격증 과연 필요할까? ( 정보처리기사 합격 회고록 )

서론 정보처리기사가 개발자에게 꼭 필요한가에 대한 논쟁은 끊임없이 있다. 필자 역시 여러 사람들에게 물어보았고, 찾아보기도 하면서 정보처리기사를 따야할 필요성이 있을까를 끊임없이 생각해보았고, 결론은 "고민하는 사이에 그냥 시험을 보자" 라는 방향으로 기울었다. 오늘은 그 전반적인 내용과, 필자가 어떻게 준비해 왔는지에 대한 간단한 회고록을 작성하고자 한다. 본론 정보처리기사 자격증은 필요할까? 이 부분에 대해서는 본인의 실력, 경력, 현재 위치 등에 따라 다를 거라고 생각한다. 그리고 어디까지나 필자의 개인적인 생각일 뿐이니 판단은 본인이 하기 바란다. 필자가 생각하기에 이미 자회사 플랫폼을 운영하는 좋은 회사를 다니고 있다면 굳이 필요없다고 생각한다. 그런 회사를 다니고 있다는건 전공 유무를 떠나 이..

일반 회고록 2023.11.18

[ F-lab ] 멘토링 4주차 회고록 : 새로운 시각 (개발)

모르는 것을 알게 되었다면 반드시 공부해서 내 것으로 만들자 서론 네 번째 멘토링 시간이 되었다. 이번에는 멘토님 사정으로 평소보다 조금 늦은 시간에 멘토링을 진행하게 되었고, 대신 2시간 가량 멘토링을 진행하였다. 그리고 오늘은 개발을 하면서 꼭 알아야 하는 새로운 시각을 갖게 되었다. 3주차 멘토링에서 질문 받았던 부분을 공부한 후에 블로그에 정리하였다. 1. RAM 과 Disk 의 차이는? 2. 시스템 버스란? 3. Java에서 연산자란? 형변환이란? 그리고 메모리 오버플로우에 대해서 설명하시오. 4. Java에서 파일을 쓰는 과정을 OS와 인터럽트 그리고 I/O 관점에서 설명하시오. 5. String a = "Hi"; 와 String a = new String("Hi"); 의 차이를 메모리 관점에..

일반 회고록 2023.11.15

[ F-lab ] 멘토링 3주차 회고록 : 끊임없이 노력하자

허송세월하며 할 일이 없는 사람은 악으로 끌려가는 것이 아니라 저절로 기울어진다. - 히포크라테스 - 서론 세 번째 멘토링 시간이었다. 오늘은 위에 히포크라테스의 명언처럼 허송세월 보내지 않고 공부한 나를 바라 볼 수 있었다. 아직 많은 시간이 지나진 않았지만, 멘토가 내준 질문과 방향성을 이행하다보니 조금씩 자신감도 붙고, 질문에 답변하는 양도 조금씩 늘게 되었다. 또한 회고록은 멘토링 받은 당일에 미리 어느정도 작성해놓는다. 그러나 질문 받은 내용을 정리하고 포스팅해야되기 때문에 회고록을 포스팅하는 날짜는 조금 뒤가 되는 것 같다. 2주차 멘토링에서 질문 받았던 부분을 공부한 후에 블로그에 정리하였다. 1. Pass By Value 와 Pass By Reference 의 차이가 무엇인가요? 2. 자바..

일반 회고록 2023.11.10

[ F-lab ] 멘토링 2주차 회고록 : 내실을 탄탄하게

깊게 공부해야 살아남을 수 있다. 내실을 탄탄하게 다지고, 1층을 완공한 후에 2층을 건설하자. 서론 두 번째 멘토링을 진행하면서 크게 느낀 부분이 위에 작성한 글의 부분이다. 정말 하나를 공부해도 파고파고들어서 깊게 공부하고, 꼬리에 꼬리를 무는 질문을 계속하며 공부해야한다.무엇보다 1층이 부실하면, 그 위에 쌓는 층도 부실해지는 법이다. 1주차 멘토링에서 질문 받았던 부분을 공부한 후에 블로그에 정리하였다. 1. 컴퓨터가 이진수를 사용하는 이유? 2. 인터럽트란? 3. 멀티쓰레드에서 동기화 문제란? 4. Assignment vs Equality vs Equals? 5. 원시타입과 래퍼타입, 그리고 박싱과 언박싱이란? 6. 추상클래스 vs 인터페이스? 7. equals와 hashCode는 왜 함께 오버..

일반 회고록 2023.11.01