분류 전체보기

TIL

2023.9.21 목 TIL

* Object 클래스 (equals, hashCode, toString) equals() : 2개의 객체가 가리키는 곳이 동일한 메모리 주소일 경우에만 동일한 객체가 되고 주소값이 다른 객체는 서로 다른 객체라 판단하는 메서드. == 와 같은 기능을 가짐. 우리가 왜 equals() 메서드를 재정의해야할까? 자바를 처음 배울 때 equals()를 어디에 썼는지 보면 문자열 비교를 할 때 equals를 썼다. String a1 = new String("a"); String a2 = new String("a"); System.out.println(a1 == a2);// false System.out.println(a1.equals(a2));// true 우리가 보기엔 a1의 값과 a2의 값이 일치한다. 그..

Java

If문 제거하기 (리펙토링)

때는 약 1년 전으로 돌아가 우테코 프리코스를 하던 시절.. 당시 과제들의 최우선 순위로 해야할 미션은 바로 클린 코딩이었다. 그 중에서도 나에게 신선한 충격을 주었던 건, if문을 최대 2중 중첩까지만 쓸 수 있게 제한한 것이었다. If문의 중첩 수를 줄이기 위해서는 최대한 메서드를 쪼개거나, 도중에 return 하는 등의 방식을 사용했다. 그리고 인턴 기간 중에도 수많은 if문들은 나를 괴롭혔다. 내가 짠 코드도 그렇게 짜놓으면 보기 힘든데 남이 보면 얼마나 힘들까. 그래서 다음 인턴이 왔을 때 내 코드를 좀 편하게 보기 위해 엄청나게 리펙토링 하고 간 기억이 난다. 이제 오늘 데브코스에서 배운 강의를 활용해 나름의 팁? 을 써보려 한다. public enum CalculateType { ADD, M..

TIL

2023.9.20 수 TIL

public class UncheckedException extends RuntimeException { } public void throwsUncheckedExceptionMethod() { throw new UncheckedException(); } public void tryCatchUncheckedExceptionMethod() { throw new UncheckedException(); } * 객체지향적으로 개발 public static void main(String[] args) { MessageSender messageSender = new FakeMessageSender(); Client client = new Client(messageSender); client.someMethod(); ..

그냥 주저리주저리

2023.9.12

벌써 23년이 1/4 밖에 남지 않았다니... 나이를 먹을수록 점점 시간이 빨라져 가고 있음을 실감한다. 우선 22년 여름을 기점으로 지금까지 어떤 변화가 있었는지를 적어보자. 1. 3학년 2학기에 프로젝트 수업(소공)에 참여해 진행했다. 우선 결과부터 말하자면, 망했다. 아이디어를 정하고 이걸 구체화하는데도 시간이 오래 걸렸고, 코드 개발에 생각보다 시간을 많이 쓰질 못했다. 개인적으로 많이 아쉬움이 남았고, 배울 점이 많았다. 프로젝트를 코드로 구현할 생각만 가득이었지, 아이디어를 정하고 아이디어를 어떻게 구체화할 것인지에 대한 고민이 부족했던 것 같고 그것이 발표할 때 고스란히 보여졌다. 그래도 AWS에 배포를 해보고, 협업 경험을 얻었다는 것에 만족한다. 2. 우테코를 지원했다. 그리고 떨어졌다...

대외활동/프로그래머스 데브코스 백엔드 5기

프로그래머스 데브코스 백엔드 5기 합격 수기

https://school.programmers.co.kr/learn/courses/17921/17921-5%EA%B8%B0-k-digital-training-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B8%B0%EB%B0%98-%EB%B0%B1%EC%97%94%EB%93%9C-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81 [5기] K-Digital Training: 클라우드 기반 백엔드 엔지니어링 K-Digital Training 100% 정부지원 클라우드 기반 백엔드 엔지니어링 동료와 함께 배우고 프로젝트로 성장하는 6개월 과정 사전 알림 신청하기 모집기간7월 5일(수) ~ 8월 8일(화) 교육기간23년 9월 19일( school.pr..

Java

Stream

public class Coffee { private String name; private int price; private boolean sail; public Coffee(String name, int price, boolean sail) { this.name = name; this.price = price; this.sail = sail; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public boo..

대외활동/2023년 상반기 인턴

2023년 상반기 인턴 기록 내용

2023.03 주차 주요 내용 1주차 (03/02~03/08) 환경세팅 - intelliJ 및 SpringBoot, h2, jdk 버전 API 정리 Spring Security 실습 03/06 Authentication과 Authorization의 차이 및 Spring Security에서 해당 기능 구현 방식 학습 학습한 방식을 토대로 기능 구현중 03 /07 구현 도중 AccessToken과 RefreshToken의 저장 위치에 대한 고민. 팀장님께 질문 및 답변을 통해 RefreshToken은 DB에 따로 저장하고 AccessToken은 접근 당시 key와 유저 정보를 토대로 만들고 후에 검증 과정에서 이를 복호화해 확인하는 과정 필요 학습. 03 /08 RefreshToken의 정보를 Member ..

스프링 정리

Spring Batch - @PersistJobDataAfterExecution

이전 포스팅에서 Job의 작업 실행횟수를 실행하기 위해 jobDataMap의 executeCount 변수를 활용한 적이 있다. @Component public class QuartzBatchJob implements org.quartz.Job { @Autowired private JobLauncher jobLauncher; @Autowired private BeanUtil beanUtil; private int executeCount = 0; @SneakyThrows @Override public void execute(JobExecutionContext context) throws JobExecutionException { JobDetail jobDetail = context.getJobDetail()..

void_melody
'분류 전체보기' 카테고리의 글 목록 (6 Page)