본문 바로가기
내일배움캠프/회고록

7월 17일 수요일

by jhdevtrace 2024. 7. 18.

결론

  • 어제와 달리, 오늘은 프로젝트 작업할 일이 있어서 좋았다.
  • 알고리즘 문제풀이 : 시저암호

오늘 겪은 일

  • 태준님과 깃허브 통해서 자료 공유 및 프로젝트를 진행하고 있었는데, 깃에서 push 관련한 문제를 겪었다. 작업 파일을 add, commit, push를 했는데, Everything-up-to-date가 떴다. 하지만 레포를 확인해보니, 파일이 정상적으로 올라오지 않아 있었다. 결론적으로는 기용 튜터님께 깃에 대해서 많은 배움을 얻고 문제를 해결하게 됐다. 근데 문제가 발생했던 것이 태준님 pc여서, 자세히 오류 메세지나 명령어를 어떻게 썼는지는 내가 자세히 보진 못했다. 그래서 배움을 근거해서 왜 에러가 발생했었는지 생각해보자면, 아마 commit 명령어에 오타가 있거나 잘못 사용했던 것 같다. push는 commit 까지 완료가 되어야 실제로 레포에 올라가는 것인데, commit에 오류가 있어서 이 단계를 하지 않았다고 생각해보면, add 후 바로 push를 했기 때문에, push로 보내줄 파일을 commit 한 것이 아무것도 없어서, 보내줄 것과 추가한 것이 아무 것도 없어서, Everything-up-to-date 가 뜬 것이 아닌가 추측한다. 이 외에 지식과 명령어들도 배웠는데, 본문에 담아뒀다.
  • 지현 튜터님과 면담을 했다. 현재 팀과 팀프로젝트가 어떤지, 주말이나 개인적으로 공부할 시간이 생겼을 때, 무엇을 공부하면 좋을지 등 이야기를 했다. 내일 더 이야기 나누기로 했다.

본문

어제 만든 기능(방명록 작성, 방명록 조회)을 실제 우리 프로젝트에 넣었다. 조금 수정도 들어갔고, 지은님의 파이어베이스에 연결해서 기능을 성공적으로 완성했다. 지은님의 파이어베이스에 접근하면서 보안 규칙 문제가 생겼었다. 지은님이 사용 가능하게 열어주셔서, 지은님 파이어베이스 활용해서 기능 잘 만들었고, 남는 시간에 파이어베이스 보안 규칙들에 대해서 알아봤다. 당장 쓸 것들은 아니지만, 어떤 보안 규칙들이 있는지, 큰 개념으로만 알아보았다.

~ 파이어베이스 보안 규칙 ~

  • 잠금 모드 : 읽기 쓰기 전부 허용하지 않음
  • service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }
  • 허용 모드(테스트 모드) : 읽기 쓰기 모두 허용
  • service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }
  • 인증된 사용자에게만 허용하기 : 파이어베이스의 authentification 기능을 활용해서 특정 사용자에게만 권한 부여
  • service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth != null; } } }
  • 컨텐츠 소유자에게만 허용하기 : 컨텐츠 소유자인지 확인하고 소유자가 맞다면 데이터 수정을 허용하는 것입니다.
  • service cloud.firestore { match /databases/{database}/documents { // Allow only authenticated content owners access match /some_collection/{userId}/{documents=**} { allow read, write: if request.auth != null && request.auth.uid == userId } } }
  • 공개 또는 비공개 설정하기 : 읽기, 생성, 수정을 기능별로 키거나 끌 수 있음
  • service cloud.firestore { match /databases/{database}/documents { // Allow public read access, but only content owners can write match /some_collection/{document} { allow read: if true allow create: if request.auth.uid == request.resource.data.author_uid; allow update, delete: if request.auth.uid == resource.data.author_uid; } } }
  • 역할 지정하기 : 각 관리자에게 부여하는 권한을 다르게 줄 수 있는 것 같다
  • service cloud.firestore { match /databases/{database}/documents { // For attribute-based access control, Check a boolean `admin` attribute allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true; allow read: true; // Alterntatively, for role-based access, assign specific roles to users match /some_collection/{document} { allow read: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == "Reader" allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == "Writer" } } }

출처 : https://fomaios.tistory.com/entry/Firebase-보안-규칙에-대해-알아보자

 

[Firebase] 보안 규칙에 대해 간단히 알아보기 - 1

안녕하세요 Foma 입니다! 오늘 알아볼건 파이어베이스 보안 규칙에 대한 것입니다. 요즘 파이어베이스에서 보안 규칙을 업데이트 하라고 이런 알림 도 오고 또 오랫동안 사용하지 않은 프로젝트

fomaios.tistory.com

 

~ 김기용 튜터님께 배운 몇 가지의 깃 관련한 상식 ~

깃은 파일을 추적, 관리할 수 있다. 여기서 파일을 추적시키는 이유는, 버전 관리를 하기 위함이다. 깃을 사용하지 않던 예전에는, ppt 파일 같은 것들을 수정하게 되면 수정1, 수정2, 수정(최종), 수정(제출 전 최종 수정).. 등등 여러 수정본들이 발생될 수 있으며, 관리가 힘들고, 경우에 따라 실수가 발생할 수가 있다. 깃으로 commit하며 파일 버전을 추적하며 작업을 하게 된다면, 파일을 여러개 만들면서 백업할 필요 없이, 버전마다 어디를 얼만큼 작업 했는지 보기 편하게 된다.

git status = 상태를 보여주는 명령어. 붉은색 파일은 관리, 초록색 파일은 추적 중을 뜻함.

git add <file> = 파일을 스테이징해서 버전 관리를 위한 추적을 한다.

git restore -- staged <file> = add로 스테이징 상태인 추적 파일을 취소한다.

commit= 추적 중인 모든 파일을 push 가 가능한 상태로 만든다.

origin = 원격 서버( 깃허브 주소 )

main = 브랜치

 

 

시저암호 코드

class Solution {
    public String solution(String s, int n) {
        String answer = "";
         System.out.println();
        // A~Z = 65~90, a~z = 97~122

        for(int i=0;i<s.length();i++){
            char temp_char= s.charAt(i);
            int temp_int = (int) temp_char;
            if(temp_int!=32){         
                if(temp_int>=65&&temp_int<91){
                    temp_int=temp_int+n;
                    if(temp_int>=91){
                        temp_int=64+(temp_int-90);
                    }
                    }
                if(temp_int>=97&&temp_int<123){  
                    temp_int=temp_int+n;
                    if(temp_int>122){
                        temp_int=96+(temp_int-122);
                    }
                    
                }
                
            }
            temp_char=(char)temp_int;
            
            answer+=temp_char;
        }
        return answer;
    }
}

'내일배움캠프 > 회고록' 카테고리의 다른 글

7월 31일 수요일  (0) 2024.08.01
7월 30일 화요일  (0) 2024.07.30
7월 16일 화요일  (0) 2024.07.17
7월 15일 월요일 개강  (5) 2024.07.15
7월 4일 목요일  (0) 2024.07.08