분류 전체보기
-
Objective-C 코드에서 Swift 클래스 참조하기iOS 2025. 4. 24. 20:57
우선 Objective-C 코드에서 Swift 클래스를 식별할 수 있도록 @objc 식별자를 추가해줘야 합니다. 클래스뿐만이 아니라 참조할 프로퍼티나 메서드에도 추가해야 합니다.다음은 Swift 5로 작성된 싱글톤 클래스 예시입니다.@objcfinal class MySingleton: NSObject { @objc static let shared = MySingletone() private override init() {} @objc func doSomething() { // ... }} Xcode는 자동으로 {프로젝트 이름}-Swift.h 형식의 브리지 헤더를 만들어 줍니다. 이 헤더를 Objective-C로 작성된 .m 파일에서 import 해줘야 ..
-
[git stash] 로컬 변경 사항 임시 저장Git 2025. 3. 18. 21:54
git stash는 로컬 변경 사항을 임시로 저장하고, working directory를 HEAD 커밋과 일치하도록 되돌리는 명령어 입니다. 저장한 내용을 나중에 다시 적용할 수 있도록 도와주는 기능이기 때문에, 코드를 커밋하지 않고도 브랜치를 변경하거나, 원격 저장소에서 pull을 받을 때 유용합니다. git stash // 로컬 변경 사항 임시 저장git stash list // 저장된 stash 목록 확인git pull origin // 원격 저장소 내용 가져오기git stash pop // 변경 사항 다시 가져오기 원격 저장소의 내용을 가져온 이후, pop을 수행하면 충돌나는 부분이 표시되고 수동 코드 병합이 가능합니다. 명령어설명git stash로컬 변경 사항 임시 저장git stash lis..
-
개인 프로젝트에 사용할 간단한 Git 브랜치 전략 - main/featureGit 2025. 2. 19. 20:32
혼자 개발하는 프로젝트에서 사용하기 위해서 기록합니다. 각 브랜치 전략main: 배포 가능한 최신 안정 버전 관리feature: 기능 개발은 'feature/{기능명}'로 브랜치를 생성해서 관리 사용 방법1. 새 기능을 개발할 때 브랜치 생성 후 개발2. 개발 완료 후 main으로 병합3. 기능 브랜치 삭제 Flow1. main 브랜치에서 새로운 기능 브랜치 생성 및 이동git switch -c feature/ui -c 는 새로운 브랜치를 생성 및 이동하는 옵션입니다. 2. 기능 개발 후 스테이징, 커밋, 푸쉬git add .git commit -m "수정"git push origin feature/ui 3. main 브랜치로 이동 후 병합git switch maingit pull origin main..
-
[git checkout] 다른 브랜치의 파일 가져오기Git 2025. 2. 19. 19:59
main 브랜치에서 수정한 파일을 현재 작업중인 브랜치로 가져오려면 아래와 같이 checkout 명령어를 사용하면 된다.git checkout -- // 예시git checkout main -- .gitignore checkout 명령어를 사용하면 현재 브랜치를 유지하며 특정 파일만 가져올 수 있다. 위와 같이 가져오면 staged 상태이다. 만약 checkout으로 가져온 파일을 원래 상태로 되돌리고 싶다면 restore 명령어를 사용하면 된다.git restore --staged .gitignore
-
HTTP Status기록/Default 2025. 2. 6. 21:01
CRUD시 일괄 POST 처리 관련 정리입니다. Create201 Created 리소스가 성공적으로 생성됨200 OK 특별한 이유로 생성된 리소스 데이터를 반환202 Accepted 요청이 수락되어 비동기 처리@Operation(summary = "게시글 생성")@ApiResponse(responseCode = "201")@PostMapping("/createArticle")public ResponseEntity createArticle(@Valid @RequestBody ArticleVO.CreateRequest createRequest) { // ... return new ResponseEntity(HttpStatus.CREATED);} Read200 OK 요청 성공 및 데이터 반환204 ..
-
Web Archive(WAR)Java 2024. 6. 27. 22:31
웹 애플리케이션은 패키징된 컴포넌트의 모음입니다. 컴포넌트로는 HTML 페이지, 이미지나 엑셀 파일같은 정적 파일, Servlet, JavaServer Pages(JSP), tag libraries, JavaBeans, Java utility classes 및 XML 파일 등의 기타 리소스가 포함될 수 있습니다(클래스 및 리소스 라이브러리가 JAR 파일로 패키징되는 것이 일반적). 이런 애플리케이션은 표준 컨테이너(Servlet engine)에서 실행할 수 있으며 컴포넌트를 결합하려면 최상위 메타 정보가 있어야 합니다. WAR 파일은 애플리케이션 컴포넌트들의 계층에 따라 구성된, 모든 컴포넌트를 포함하는 단일 파일이며 애플리케이션을 실행하려는 대상 환경에 배포하는 수단입니다. 배포 툴은 WAR 파일을..
-
[Spring] 전자정부프레임워크 crypto를 활용한 암호화Spring 2024. 6. 17. 21:07
서버의 프로퍼티 파일(Spring의 properties 파일)에 데이터베이스 연결 정보를 작성하거나 데이터베이스에 사용자의 정보 등 민감한 정보를 저장할 때에는 유출을 생각해서 적절한 암호화가 필요합니다. 이때, 데이터를 암호화한 후, 다시 복호화 할 수 없도록 하는 단방향 암호화를 활용할 수 있습니다. 대표적인 단방향 알고리즘으로는 해시 함수를 이용하여 원본 데이터를 고정된 길이의 해시값으로 변환하는 MD5, SHA-1, SHA-256 등이 있습니다. 이번 예시에서 작성할 전자정부 프레임워크의 crypto 라이브러리(패키지 까보면 jasypt 라이브러리 기반)도 위의 알고리즘들이 가용하지만, MD5와 SHA-1은 취약성 문제 때문에 SHA-256을 사용하는 것이 일반적입니다. 아래 예시는 전자정부프레임..