본문 바로가기
스파르타(부트캠프)/TIL (Today I Learned)

[내일배움캠프] 스파르타 6일차_24.10.07

by Kimuky 2024. 10. 7.

공부 내용 및 활동 내용

 -  프로젝트 회고, JAVA 복습

1. 프로젝트 회고 ( 신경썼던 점, 어려웠던 점, 아쉬웠던 점, 개선할 점)
2. JAVA 기초 복습


1. 프로젝트 회고

완성된 프로젝트

https://youtu.be/cZUn-xfu15g?si=A33vI4SkYr5QxF46

 


- 신경썼던 점: 목적, 목표에 맞게 CRUD에 집중

프로젝트를 도식화

 


- 어려웠던 점

1. Javascript 이해도

- <script type=‘module’></script>를 html 파일에서 분리할 때, CORS 정책 때문에 서버를 켜줘야하는 것

- Firestore를 활용하기 위한, async, await 처리

- 동적으로 생겨진 요소에 클릭이벤트 처리

2. 코드 컨벤션

- 코드의 일관성 혹은 규칙이 명확하지 않아 코드를 다시 파악하는데 어려움

- 변수명, css 클래스명 명명 시, 명명을 어떻게 할지 고민..

3. 클린 코드

- 코드의 중복을 해결하는 문제

- 코드가 쉽게 이해가지 않는 문제


- 아쉬웠던 점

1. 팀원들의 중도하차

미니프로젝트 기간 동안은 수강정정 기간이라 수강생들이 강의를 포기할 수 있었는데 불행하게도 우리팀에는 5명에서 2명이 되었다. 3명이나 나간 케이스라 당황했다.

2. Css에 시간 투자

- 백엔드 코스에서는 그렇게 중요한 요소가 아님에도 시간을 과투자한 것 같아 후회가 된다.

- Css에 투자하기 보다는 API 연동, 기능 확장 등에 대해 투자하는 것이 옳지 않았나 싶다.

3. 설계 오류

- 설계를 제대로 하지못해 개발하던 도중 디자인과 기능을 추가해서 변수, 로직 등이 추가되어 처리하는데 어려움이 있었다. 이런 사태가 일어나지 않게 처음부터 Usecase 등 을 잘 정리하는 것이 좋을 것 같다.

 


- 개선할 점

1. 코드 컨벤션을 잘 정하자

- 변수 혹은 함수 명명 시, 누가 보아도 이해가 갈 수 있도록 정하고 개발하자

2. 설계를 잘하자

- 구현보다는 설계에 초점을 두어 제대로 된 설계를 하고 구현에 들어가는 것이 좋을 것 같다.

3. 남의 코드 활용

- 남의 코드를 활용할 떄, 무조건 작동이 되는지만 확인할 것이 아니라 테스트 과정을 거치고 제대로 이해하면 써야겠다. 당장은 문제없을지도 모르지만 데이터가 추가되거나 로직을 추가할 때, 문제가 생겼다.


2. JAVA 복습

-  이번 주부터 본격적으로 JAVA 학습에 들어가기 전, 기초 코딩테스트 문제를 통해 복습을 하고있다. 코딩테스트는 Python으로만 했는데 JAVA 보다는 훨씬 쉬운 것 같다. 아직 이해못한 것이 너무 많다.

-> 원시타입, 참조형, Wrapper class, 콜렉션 프레임 워크 등...


오늘 공부한 내용

- toCharArray()

import java.util.Arrays; 
public class StringToCharArray {    
	public static void main(String[] args) {        
    	String str = "안녕하세요";                 
    	char[] charArr = str.toCharArray();         // 문자열 -> array         
    	// 문자열을 출력 이게 아니면 반복문으로 출력해야함
    	System.out.println(Arrays.toString(charArr));    
    }
}

 

- 삼항 연산자

import java.util.Arrays; 
import java.util.Scanner;
public class TernaryOperator {    
	public static void main(String[] args) {        
    	
        // * 예제 1: 삼항연산자로 큰 수 구하기
        int num1 = 1;
        int num2 = 3;
        
        // num1이 크다면 num1을 bigNum에 넣어주고 아니면 num2
        int bigNum = num1 > num2 ? num1 : num2;
        
        // num1이 크기에 1이 출력
        System.out.print(bigNum);
//------------------------------------------------------------------------        
        
        // * 예제 2: 삼항연산자로 짝수 구하기
        Scanner sc = new Scanner(System.in);
        int num3 = sc.nextInt();
        
        // num3가 2로 나누었을 때, 나누어 떨어지면 "Even" 아니면 "Odd"
        String stringEvenOdd = num3 % 2 == 0 ? "Even" : "Odd"
        
        // 값에 따라 출력
        System.out.print(stringEvenOdd);
        
    }
}

 

- 문자열 자르기

public class StringCutter{
    public static void main(String[] args) throws Exception {
        String str = "안녕하세요"; //대상 문자열
        
        // 출력값 : "하세요"
        System.out.print(str.substring(2))
        
        // 출력값 : "하세"
        System.out.print(str.substring(2,4))
        
        // 출력값 : "세요"
        System.out.print(str.substring(3,5))
    }
}

 

- 문자열 길이, 배열 길이 구하는법

public class StringArrayLength {
    public static void main(String[] args) throws Exception {
        int[] num_list = {12, 4, 15, 46, 38, 1, 14, 56, 32, 10};
        String str = "1234"
        
        // 출력 : 10
        System.out.println(num_list.length);
        // 출력 : 4
        System.out.println(str.length());

    }
}

 

- 문자열 찾기

public class indexOfContains {
    public static void main(String[] args)  {
        // * 1)indexOf
        String s = "안녕하세요kim입니다";
        //문자열 검색 출력 : 5
        System.out.println(s.indexOf("k"));
        //문자열 검색 출력 : 4
        System.out.println(s.indexOf("요")); 
//---------------------------------------------------
		
        // * 1) contains
        String str = "나는 바보입니다"
        
        // 출력값 : 1
        if (str.contains("바보")){
        	System.out.println(1); 
        } else {
        	System.out.println(2);        
        }
        
    }
}

 


이렇게 미니프로젝트를 무사히 끝냈다. 이제는 본캠프 시작이지만 진짜 시작이라고 한다.

걱정이 앞서긴 하지만 천천히 확실하게 학습하면 된다.

중간에 포기하지 않고 계속 공부해야한다.