DAY+02

안휘원·2022년 1월 11일
2

anabada

목록 보기
2/11

ROUTINE

  • 1시 25분 취침
  • 5시 38분 기상
  • 20시-22시 휴식

SELF-STUDY

1. 자바의 정석 (30분)

  • printf() : 지시자를 통해 변수의 값을 여러가지 형식으로 변환하여 출력
    - 지시자:
%d10진(decimal) 정수의 형식으로 출력
%x16진(hexa-decimal) 정수의 형식으로 출력
%f소수점(floating-point)의 형식으로 출력
%c문자(character)로 출력
%s문자열(string)로 출력
%n줄바꿈
  • Integer.parseInt() : 문자열을 int타입의 정수로 변환하는 메서드

  • 타입 간의 변환방법
    i. 숫자→문자 : 순자에 ‘0’을 더한다
    (char)(3 + ‘0’) → ‘3’
    ii. 문자→숫자 : 문자에서 ‘0’을 뺀다
    ‘3’ - ‘0’ → 3
    iii. 숫자→문자열 : 숫자에 빈 문자열(””)을 더한다
    3 + “” → “3”
    vi. 문자열→숫자 : Integer.parselnt() 또는 Double.parseDouble()을 사용한다
    Integer.parseInt(”3”) → 3
    Double.parseDouble(”3.14”) → 3.14
    v. 문자열→문자 : charAt(0)을 사용한다
    “3”.charAt(0) → ‘3’
    vi. 문자→문자열 : 빈 문자열(””)을 더한다
    ‘3’ + “” → “3”

2. 강의

  • 💻 자바 100 Part1(40.90%)/파이썬 100 Part1(26.31%)
  • 💻 스파르타 스프링

3. 모각코 : 2일차

  • 프로그램 설치한 걸 인증하는 게 숙제라는 공지에 잠깐 눈을 의심했다.
    사실 조금 후회 중이다. 앞으로는 자신 없다고 무조건 쉬운 거, 기초, 이런 것들만 하려하지 말고 두렵더라도 내가 생각하는 것보다 한 단계 정도 더 높은 곳에 도전하자.
    제자리 걸음 수 만 번이 도움될 때도 있겠지만, 지금 내 상황에서 나같은 겁쟁이는 한 걸음 나가는 게 더 도움이 될 때이다.

4. 알고리즘 1문제

  • 알파벳 빈도수 세기
    - ord() 함수: 특정한 한 문자를 아스키 코드 값으로 변환해 주는 함수
    - chr() 함수: 아스키 코드 값을 문자로 변환해 주는 함수 (10진수, 16진수 사용 가능)
def find_alphabet_occurrence_array(string):
    alphabet_occurrence_array = [0] * 26
    
    for char in string: # 문장의 문자들 인식
    	if not char.isalpha(): # 해당 문자들이 알파벳인지 판단
        	continue # 알파벳 아닌 경우, 다음 인덱스로 넘김
        arr_index = ord(char) - ord("a") # a=0으로 값 지정 (ASCII 참고)
        alphabet_occurrence_array[arr_index] += 1
        # arr_index를 가진 alphabet_occurrence_array의 값을 각각 확인
       
    return alphabet_occurrence_array
    
print(find_alphabet_occurrence_array("hello my name is sparta"))

5. 이것이 취업을 위한 코딩이다 (1시간)

  • 책 내용이 굉장히 친절해서 나같은 코딩 입문자도 기본적인 정보들을 얻을 수 있었다. 이제 맛보기는 끝나고 제대로 들어가는데, 꼭 책에서 얻을 수 있는 최대한을 가져와 내 것으로 잘 새겨지길 바란다.

PROJECT : 아나바다(ANABADA)

1. 오늘 한 일

  • 로그인 및 회원가입 기능
    - 카카오 로그인
    • 일반회원 회원가입, 관리자 회원가입 구분
    • 개인회원/기업회원 별도 로그인 및 회원가입 버튼

2. 문제점 및 해결방법

  • 문제 1) h2-console 접근 불가, css 적용 불가
    - @EnableWebSecurity: Spring Security 지원을 가능하게 함.
    얘 때문이었음.

  • 해결 1) web.ignoring().antMatchers("/h2-console/**");
    (설정한 리소스의 접근을 인증절차 없이 허용한다는 의미)
    - 아예 login과 signup 페이지만 작동되는 걸 보고 WebSecurityConfig 클래스에서 유일하게 두 페이지만 입력했던 게 생각났다.
    - 혹시 몰라 h2-console 접속 안 될 때를 검색해서 .ignoring().antMatchers()를 사용해줬더니 해결이 됐다 (css도 .antMatchers("/css/**").permitAll() 사용).
    이렇게 따로 설정해주지 않으면 개미 한 마리도 허용 안 되더라. (그래서 ant인가)

3. 느낀점

  • 기능을 어떻게 구현해야 될지 모르는 상황일 때, 방법을 다 알고나서 구현하려고 하지 말자. 물론 중요하지만, 지금처럼 엄청난 기술을 필요로 하는 게 아닌데 시간은 촉박한 상황에선 일단 검색 후 복붙하고 그 뒤에 찬찬히 뜯어보자.
    오늘같이 공부 먼저 하려 들면 더 늘어진다. 공부는 아무리 해도 부족하게 느껴지지만, 구현은 당장 눈에 결과물이 보여야 하기 때문에 아무래도 상대적으로 더 빠릿하게 집중할 수 있을 것 같다.

  • 열심히 코딩을 짜다 아차했다. API 설계를 안 했다. 언니한테 말을 했는데, 반응이 없었다. 오늘 git bash를 사용해서 github에 커밋 올리는 방법에 익숙해지려고 집중하는 것 같아서 일단은 기본적인 뼈대들을 잡은 후에 다시 말해보려고 한다.


TODAY'S MEMO

  • UserRole Enum: 일반사용자와 관리자를 구분

  • .ignoring() .antMatchers(””);.ignoringAntMatchers(""); 차이가 뭘까? 그리고 .antMatchers("").permitAll();은 또 뭐가 다른 걸까?

  • csrf: 해커들의 공격 방법 중 하나.
    사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격방법. (그런데 왜 무시하지?)

  • 오늘 본격적으로 뼈대를 잡고 기능들을 구현하면서, 결심했던 몇 가지 루틴을 잠시 제외하고 간소화시킬 필요성을 느꼈다.
    코테 공부와 프로젝트 사이에서 밸런스를 고민했지만, 지금 보니 내가 이력서에 적은 프로젝트조차 제대로 설명하지 못하고, 심지어 기술했던 기능들을 구현하지 못하는 일도 생겼다.

  • 코테 공부를 아예 놓겠다는 건 아니고, 조급하긴 해도 최소 1문제는 꾸준히 붙들고 가되 지금은 프로젝트에 적용하는 기능들에 대한 구현과 지식을 더 단단히 잡을 때라고 판단했다.

✔ 스파르타 스프링 복습 강의 쭉 돌리기(아침)
✔ 개인회원 / 기업회원 구분하기(오전)
✔ 간소화 : 자바의 정석, 모각코, 이취코 독서 시간

profile
우당탕탕 개발자 성장일지

0개의 댓글