본문 바로가기

Java107

부트캠프가 끝난뒤...(1) 6개월간의 부트캠프가 끝났다. 그간 나는 정말 많이 성장했을까? 싶어서 회고 겸 정리를 다시 해보자 한다. section1부터 차근차근 보며 뭘했는지 적어보려고 한다. ㅇ 웹 클라이언트와 웹 서버에 대해 배웠다. client server architecture(2-tier architecture) 설계방식을 배웠었다. 간단히 리소스가 존재하는곳(서버)과 리소스를 사용하는 앱(클라이언트)을 분리시킨것이다. 여기서 리소스를 저장하는 공간을 따로 마련한곳(DB)을 추가하면 3-tier architecture. ㅇ HTML과 CSS를 한번씩 써봤다. ㅁ Java 기초를 배웠다. 4가지 특징을 배웠는데 이건 기억해 두고 가야할것같다. 내가 제일 많이 쓰는 언어기도 하니 외워두고 가야겠다. 1. 운영체제에 독립적이.. 2023. 4. 11.
setter 대신 builder 그 동안 코드스테이츠에서 setter를 사용하며 setter에만 익숙해져있던 나에게 신선한 충격을 준 말이 있었다. "setter는 현업에서 안써~ builder쓰지." ㅇㅇ엥? 이 편한 setter를 안쓴다고? 왜지? 왜!!!?라고 생각해서 한번 찾아보고 정리해봤다. setter를 사용할때는 매개변수가 굉장히 많은 경우에 일일이 설정하기 굉장히 번거롭다. setter의 사용을 지양하라는 이유중 가장 큰 두가지중 첫번째이유는 의도를 파악하기 힘들다는것이다. 두번째 이유는 객체의 일관성을 유지하기 힘들다는것이다. 물론 setter 대신 생성자를 사용해 객체의 매개변수값들을 설정해 줄 수 있지만, 어떤 매개변수가 필요하지 않을 수도 있다. 고로 builder패턴을 사용하는것이 좋다고 한다. 예를 들어, 우.. 2023. 4. 9.
정수배열 각 요소가 앞에 요소들의 합보다 크면 레알참트루 Int 배열을 입력받고 각요소가 그 앞에 요소들의 합보다 크면 true 반환하는 문제였다. 처음짰던 코드는 아래와 같다. public class Main { public static void main(String[] args) { int[] arr = new int[]{979, 1737, -2146, -337,234}; boolean result = true; for(int i =2; i arr[1]){ result = false; } break; } if (arr[i-2] + arr[i-1] > arr[i]) { result = false; } } System.out.println(result); } }​ 처음에.. 2022. 12. 6.
문자열배열 세로로 읽어버리기 문자열배열을 입력받아 세로로 읽을때처럼 출력하는 문제였다. 예를 들어 "hello" "world"면 "hweolrllod" 이렇게 출력하는 문제였다. 그래서 일단 빈문자열을 만들고 길이순으로 정렬하고, 이중반복문으로 한글자씩 넣어줬는데 대체 왜 틀렸지 하며 머리아팠는데 다시 문제를 보니 "hi" "world"면 "hwiorld"가 나와야하는데 내가 길이순으로 정렬해서.. 바보같이... 길이순으로 정리하는게 아니라 가장 긴길이를 구하고 구한만큼 반복해야 하는건데....정렬을 바꾸는게 아니라.. 처음 짠 코드는 이랬다. 테스트가 잘 통과하길래 뭔문제지? 했다... public class Main { public static void main(String[] args) { String[] arr = new S.. 2022. 12. 5.