묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
데디케이티드 서버 관련 질문
안녕하세요, 강의 관련 질문은 아니지만 궁금한 점이 생겨 질문 올립니다. 개인 프로젝트로 TPS 생존 게임을 제작하려 합니다. 한 경기에 10명 내외의 클라이언트가 접속할 예정입니다.언리얼 엔진에서 제공하는 리슨 서버와 데디케이티드 서버 중 어떤 방식이 알맞을까요?만약 데디케이티드 서버가 알맞다면 리슨 서버에서 구현했던 if(Hasauthority()) 등의 로직들은 제거해주면 되는 것인가요? 만약 데디케이티드 서버로 구성하면 어디서 클라이언트의 데이터 검증을 하게 되는지 등 리슨 서버와 어떻게 다르게 구성해야 하는지 잘 와닿지가 않습니다. characterplayer.cpp 등에 작성한 코드 자체가 서버 로직임과 동시에 클라이언트 로직인 것인지.. 인터넷에는 데디 서버를 구축하는 방법만 나와 있어서 여쭈어 봅니다. ++) 그리고 게임을 제작할 때 BP와 C++을 혼용해도 상관 없을까요? 강의는 전부 C++로 진행되어서 웬만하면 C++로 제작할 예정이지만, BP를 혼용하여 사용하는 것에 있어서 주의점 등이 있는지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 2편
섹션 10. Collections
Map<String, Integer> map = Map.of("a", 1, "b", 2, "c", 3, "ab", 4); 실행 결과 1번째 map = {a=1, b=2, c=3, ab=4} 2번째 map = {b=2, a=1, ab=4, c=3} 3번째 map = {ab=4, c=3, b=2, a=1} 4번째 map = {b=2, c=3, ab=4, a=1} 5번째 map = {b=2, a=1, ab=4, c=3}Map은 순서를 보장하지 않고, 중복을 허용하지 않습니다. HashMap에서는 key값을 가지고 hashCode를 구하고 hashIndex에 값을 보관하기에 입력한 순서대로 저장하는 것을 보장할 수 없습니다.그런데 map.of()로 생성을 했을 때는, 그 순서가 실행 할 때마다 달라져있습니다. 랜덤으로 돌린 것처럼...왜 매번 입력되는 값의 순서가 달라지는 건가요ㅠㅠ
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
장바구니 수량 변경 문의드립니다.
장바구니 수량 변경 및 커스텀 훅 강의에서 장바구니 수량 +,- 버튼 클릭하면 장바구니의 수량이 동적으로 변경되더라구요. 그런데 저는 화면에 수량이 변경되지않네요. ajax 로 정상 처리 되고 장바구니 데이터도 정상적으로 받아 와서 새로고침 하면 수량이 변경된것을 확인은 할 수 있어요. 소스코드:React CH11 에서 코드를 비교했는데 다르지 않았습니다. 확인부탁드릴게요~
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
공식예시문제 작업형2 에러코드
공식예시문제 작업형2 에러코드 문의 드립니다. [파일첨부]import pandas as pdtrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv") train['환불금액'] = train['환불금액'].fillna(0)test['환불금액'] = test['환불금액'].fillna(0)# print(train.isnull().sum()) # 수치형 데이터 전처리cols = ['총구매액', '최대구매액', '환불금액', '방문일수', '방문당구매건수', '주말방문비율', '구매주기']from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()train[cols] = scaler.fit_transform(train[cols])test[cols] = scaler.fit(test[cols])# print(train.head()) # 오브젝트형 데이터 전처리cols = train.select_dtypes(include='O').columnstrain = pd.get_dummies(train, columns=cols)test = pd.get_dummies(test, columns=cols)print(train.head()) # 데이터 분리 from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train.drop('성별', axis=1), train['성별'], test_size=0.2, random_state=2024) # 모델&평가from sklearn.ensemble import RandomForestClassifierfrom sklearn.metrics import roc_auc_scorerf = RandomForestClassifier(random_state=2024, max_depth=7, n_estimators=200)rf.fit(X_tr, y_tr)pred = rf.predict_proba(X_val)[:, 1]print(roc_auc_score(y_val, pred))# 0.6882619421394 여기까지는 에러없이 평가까지 잘되는데...#제출pred = rf.predict_proba(test)이걸 넣으면 아래처럼 에러가 떠요. 뭐가 문제일까요...ㅜ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
docker 실습중 에러가 발생햇습니다
> docker build .[+] Building 0.7s (2/2) FINISHED docker:desktop-linux => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 931B 0.0s => ERROR [internal] load metadata for docker.io/library/node:14 0.7s------ > [internal] load metadata for docker.io/library/node:14:------Dockerfile:12-------------------- 10 | 11 | # 1. 운영체제 및 프로그램 설치(이미 리눅스, node, npm, yarn까지 모두 깔려있는 컴퓨터 다운로드 하는 방식) 12 | >>> FROM node:14 13 | 14 | # 2. 내 컴퓨터에 있는 폴더나 파일을 도커 컴퓨터 안으로 복사하기--------------------ERROR: failed to solve: node:14: failed to resolve source metadata for docker.io/library/node:14: error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH, out: ``View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/q6pcnbchjjksdmhtibwuxdqrk이런 에러가 뜨는데 어떻게 해결해야하나요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
CreateMonster함수 질문
1.void CreatMonsters(Statinfo* monsters, int count)로 선언을 했는데 제가 여기서 monsters부분을 monsters[]로하니 오류가 나더군요 오류가 나는이유가 궁금합니다 Statinfo타입의 배열로 만들었는데 그러면 배열로 선언해줘야 하는거 아닌지 궁금합니다2. 1번과 연관된 질문입니다 void CreatMonsters(Statinfo* monsters, int count) 내부에서 랜덤밸류를 설정해서 몬스터의 i번쨰의 데이터를 집어넣는데 함수형식을 보면 Statinfo*라고해서 포인터로 선언했는데 내부 코드를보면 monster[i].hp를 사용하는데 배열관련된 부분은 .으로 접근해서 사용하는건 알겠는데 처음 함수를 선언할때 Statinfo*형식인데 ->로 접근해서 데이터를 변경하는게 맞는거아닌가요? 너무 헷갈립니다 3.EnterBattle(playerinfo,&monsters[index])을 실행할때 이런 모습인데 여기서 EnterBattle은 bool EnterBattle(Statinfo* playerinfo, Statinfo* monsterinfo);이런 모습인데 실행시킬때 &playerinfo가 아닌 그냥 playerinfo인 이유가 Entergame함수에서 인자로 받은 playerinfo가 애초에 주소값이기때문에 그냥 playerinfo로 넣는건가요? 그리고 또 monsters배열에는 &가 붙은이유는 &가없으면 주소값이아닌 그냥 값의 형태기때문에 &를 붙여 주소로 변경해주는건가요??
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
시간 계산...
안녕하세요. 저는 아래와 같이 interval 앞에 연산기호 '-' 를 넣고,left join 을 이용했는데요.self join 시에 이렇게 사용하면 오답처리될 확률이 높을까요? # Write your MySQL query statement below SELECT t.id as id FROM weather t LEFT JOIN weather y on t.recordDate - interval 1 day = y.recordDate WHERE T.temperature > y.temperature;
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
중간테이블에 대한 낙관적 락 적용법
현재 Member 테이블과 Appointment 테이블이 존재하는데, N:N 관계이기 때문에 아래와 같이 AppointmentUser라는 중간 테이블이 존재합니다.@Entity @Table(name = "appointment_and_user") public class AppointmentUser extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "apppointment_id", nullable = false) private Appointment appointment; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", nullable = false) private Member member; @Enumerated(value = EnumType.STRING) @Column(name = "member_authority", nullable = false) private MemberAuthority memberAuthority; @Version private Long version;하나의 AppointmentUser 테이블은 약속과 멤버의 id를 하나씩 가집니다. 여기서 레포지토리의 코드는 이러합니다.public interface AppointmentUserRepository extends JpaRepository<AppointmentUser, Long> { ... @Lock(LockModeType.OPTIMISTIC) @Query("select au from AppointmentUser au where au.id = :id") AppointmentUser findByIdWithOptimisticLock(Long id);findByIdWithOptimistic 메서드를 통하여 특정 유저-약속 테이블의 데이터를 통해 AppointmentUser 객체를 반환합니다. 서비스 계층의 코드는 아래와 같습니다.@Transactional public void updateAuthority(Long appointmentId, Long loginMemberId, Long targetMemberId) { Member loginMember = memberRepository.getById(loginMemberId); Member targetMember = memberRepository.getById(targetMemberId); Appointment appointment = appointmentRepository.getById(appointmentId); AppointmentUser loginAppointmentUser = appointmentUserRepository.getByMemberAndAppointment(loginMember, appointment); AppointmentUser targetAppointmentUser = appointmentUserRepository.getByMemberAndAppointment(targetMember, appointment); appointment.changeTitle("asd"); validateIsAdminMember(loginAppointmentUser.getId()); MemberAuthority targetAuthority = targetAppointmentUser.getMemberAuthority(); targetAppointmentUser.updateAuthority(MemberAuthority.getAnotherAuthority(targetAuthority)); appointmentRepository.save(appointment); appointmentUserRepository.save(targetAppointmentUser); } private void validateIsAdminMember(Long loginAppointmentUserId) { if (appointmentRepository.findByIdWithOptimisticLock(loginAppointmentUserId).getMemberAuthority() != MemberAuthority.ADMIN) { throw new NotAdminMemberException(); } } <로직 설명>하나의 약속 내에 멤버 두명이 존재각 멤버들은 ADMIN or NORMAL 권한을 갖고 있음.두명 다 약속 내 에서 ADMIN 권한을 갖고 있다는 상황을 가정. (ADMIN은 AppointmentUser 엔티티의 MemberAuthority 라는 필드의 Enum 값입니다.)두명이 서로를 동시에 ADMIN에서 NORMAL로 권한을 박탈하는 경우, 하나의 약속 안에 ADMIN인 사람이 없어지는 예외적인 문제 상황이 발생함.그래서 @Version을 AppointmentUser 엔티티의 필드로 등록하여 해결하려고 했으나..사용자 A와 B가 있다고 할 때 service 코드 내의 validateIsAdminMember 메서드를 통해 상대방의 권한을 박탈하려는 유저(본인)가 ADMIN인지 검증하여 ADMIN이 맞다면 박탈하고, ADMIN이 아니라면, 예외를 던지게 끔 하는 로직에서,레포지토리 내의 findByIdWithOptimisticLock 메서드를 동시에 접근했을때 Version 필드를 통해 동시성 문제를 제어할 수 있다고 생각했으나..validateIsAdminMember로 검증하는 A와 B의 AppointmentUser 엔티티는 서로 다른 객체(데이터)이기 때문에 서로 다른 테이블의 Version 값을 변경하기 때문에 동시성 보장이 안됨..그래서 Appointment에 Version필드를 넣어주려 했지만, Version값은 해당 테이블에 변화가 생겨야 변한다.하지만 로직상, AppointmentUser(중간테이블)에 변화가 생기는게 맞다...위와 같은 중간 테이블 사용으로 인한 문제가 발생하였을 때 어떻게 강의자님이시라면 어떻게 해결하실지 궁금합니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
커뮤니티를 올리고 난 후 404 page
커뮤니티 name을 Name1 이렇게 지었으면http://localhost:3000/r/Name1 이런식으로 바로 넘어가져서 404 page가 뜨는데요 이유가 create.tsx파일const handleSubmit = async (event: FormEvent) => { event.preventDefault(); try { const res = await axios.post("/subs", { name, title, description }); router.push(`/r/${res.data.name}`); } catch (error: any) { console.log(error); setErrors(error.response.data); } };여기서 router.push(`/r/${res.data.name}`);이 부분때문에 그런건가요? 원래 커뮤니티 등록하면 넘어가지는게 정상인가요? 강의에서는 안넘어가는걸로 보이는데...
-
미해결홍정모의 따라하며 배우는 C언어
exe 확장자
8.3 공부 중 교수님이 주신, 워크북 파일로 학습 중인데, exe파일이 없습니다. 저기 있는 exe.recipe로 cmd에 해봐도 되지 않습니다. 미리 답변 감사합니다.
-
미해결2시간으로 끝내는 프론트엔드 테스트 기본기
[공유] cy.visit() failed trying to load;
위 화면처럼 connect ECONNREFUSED::1:54382등 locahost에 접근할 수 없다고 나오면 cypress.config.ts에서 baseurl 설정해야합니다.(https://parkparkpark.tistory.com/186)import { defineConfig } from "cypress"; export default defineConfig({ e2e: { baseUrl: "http://localhost:3000", setupNodeEvents(on, config) { // implement node event listeners here }, }, });
-
해결됨야, 너도 AI 서비스 만들 수 있어. [이미지 AI 서비스 서버리스 풀스택]
도커 파일 빌드 오류 문의
도커 파일 빌드 오류 문의입니다.게시판을 보니 비슷한 오류가 있었던거 같네요맥에서도 해보고 윈도우에서도 해봤는데 동일하게 안되네요..오늘 하루종일 빌드만 했네요..어떤 부분을 잘못 하고 있는지 가이드 부탁합니다.. s3 에 사용할 iam 사용자 권한을 별도로 부여했는데요 . 새로 생성된 사용자의 권한 문제로 오류가 나는거 같네요.. 영상에서 한거와 같이 동일하게 했는데..오류가 나네요 혹시 다른 세팅이 있을까요?? => ERROR [11/18] RUN python3 download.py 11.1s------> [11/18] RUN python3 download.py:5.085 The cache for model files in Transformers v4.22.0 has been updated. Migrating your old cache. This is a one-time only operation. You can interrupt this and resume the migration later on by calling transformers.utils.move_cache().0it [00:00, ?it/s]9.892 downloading reg images...9.892 BUCKET_NAME:: dev-raymong-lecture-api-uploadsbucketc4b27cc7-547dbvnhp66w9.899 Traceback (most recent call last):9.899 File "download.py", line 64, in <module>9.899 download_model()9.899 File "download.py", line 20, in download_model9.899 download_reg_images()9.899 File "/s3_file_manager.py", line 20, in download_reg_images9.899 bucket.download_file(filepath, savepath)9.899 File "/opt/conda/lib/python3.8/site-packages/boto3/s3/inject.py", line 279, in bucket_download_file9.899 return self.meta.client.download_file(9.899 File "/opt/conda/lib/python3.8/site-packages/boto3/s3/inject.py", line 192, in download_file9.899 return transfer.download_file(9.899 File "/opt/conda/lib/python3.8/site-packages/boto3/s3/transfer.py", line 405, in download_file9.899 future.result()9.899 File "/opt/conda/lib/python3.8/site-packages/s3transfer/futures.py", line 103, in result9.899 return self._coordinator.result()9.899 File "/opt/conda/lib/python3.8/site-packages/s3transfer/futures.py", line 266, in result9.899 raise self._exception9.899 File "/opt/conda/lib/python3.8/site-packages/s3transfer/tasks.py", line 269, in _main9.899 self._submit(transfer_future=transfer_future, **kwargs)9.899 File "/opt/conda/lib/python3.8/site-packages/s3transfer/download.py", line 354, in _submit9.899 response = client.head_object(9.899 File "/opt/conda/lib/python3.8/site-packages/botocore/client.py", line 565, in apicall9.899 return self._make_api_call(operation_name, kwargs)9.899 File "/opt/conda/lib/python3.8/site-packages/botocore/client.py", line 1021, in makeapi_call9.899 raise error_class(parsed_response, operation_name)9.899 botocore.exceptions.ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden------Dockerfile:32--------------------30 | ADD s3_file_manager.py .31 | ADD download.py .32 | >>> RUN python3 download.py33 |34 | ADD convert_diffusers_to_original_stable_diffusion.py .--------------------ERROR: failed to solve: process "/bin/sh -c python3 download.py" did not complete successfully: exit code: 1View build details: docker-desktop://dashboard/build/default/default/hu4bblbekud4p75go1rdofetm
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 10. Comparable
public class MyUser implements Comparable<MyUser> { private String id; private int age; public MyUser(String id, int age) { this.id = id; this.age = age; } public String getId() { return id; } public int getAge() { return age; } @Override public int compareTo(MyUser o) { return this.age < o.age ? -1 : (this.age == o.age) ? 0 : 1; }MyUser의 멤버 변수는 private인데 compareTo(MyUser o)에서 this.age는 본인의 값을 가져다 쓴다고 쳐도 o.age로 호출이 어떻게 가능한 건가요??
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
version 컬럼이 증가하지 않는 이유
현재 강의 내용을 바탕으로 OptimisticLock 을 구현중인데,version이 증가하지 않는 이유를 알고 싶습니다.도메인은 이렇습니다.@Entity @Table(name = "appointment") public class Appointment extends BaseEntity { ... @OneToMany(mappedBy = "appointment") private List<AppointmentUser> appointmentUsers = new ArrayList<AppointmentUser>(); @Version private Long version; 그리고, 레포지토리는 이렇습니다.public interface AppointmentRepository extends JpaRepository<Appointment, Long> { ... @Lock(LockModeType.OPTIMISTIC) @Query("SELECT au FROM Appointment a " + "JOIN a.appointmentUsers au " + "WHERE au.id = :appointmentUserId ") AppointmentUser findByIdWithOptimisticLock(Long appointmentUserId); } 그리고, 서비스 계층 메서드는 이렇습니다.@Transactional(readOnly = true) @Service public class AppointmentUserService { ... @Transactional public void updateAuthority(Long appointmentId, Long loginMemberId, Long targetMemberId) { Member loginMember = memberRepository.getById(loginMemberId); Member targetMember = memberRepository.getById(targetMemberId); Appointment appointment = appointmentRepository.getById(appointmentId); AppointmentUser loginAppointmentUser = appointmentUserRepository.getByMemberAndAppointment(loginMember, appointment); AppointmentUser targetAppointmentUser = appointmentUserRepository.getByMemberAndAppointment(targetMember, appointment); validateIsAdminMember(loginAppointmentUser.getId()); MemberAuthority targetAuthority = targetAppointmentUser.getMemberAuthority(); targetAppointmentUser.updateAuthority(MemberAuthority.getAnotherAuthority(targetAuthority)); appointmentUserRepository.save(targetAppointmentUser); } private void validateIsAdminMember(Long loginAppointmentUserId) { if (appointmentRepository.findByIdWithOptimisticLock(loginAppointmentUserId).getMemberAuthority() != MemberAuthority.ADMIN) { throw new NotAdminMemberException(); } } }위 updateAuthority 메서드 내에서 validateIsAdminMember를 호출하여, validateIsAdminMember 안에 있는 findByIdWithOptimisticLock을 통하여 Version을 올려주어서 낙관적 락을 성공적으로 구현할 수 있을 줄 알았는데 테스트를 해보니 아래와 같이 실패합니다.. @Test void 동시성_테스트() throws InterruptedException { Logger logger = Logger.getLogger(MultiThreadTest.class.getName()); ExecutorService executorService = Executors.newFixedThreadPool(2); CountDownLatch latch = new CountDownLatch(2); AtomicReference<Boolean> flag = new AtomicReference<>(false); executorService.execute(() -> { try { logger.log(Level.INFO, "첫 번째 요청 시작: member1 -> member2"); logger.log(Level.INFO, "버전1전" + appointmentRepository.getById(1L).getVersion()); appointmentUserService.updateAuthority(1L, 1L, 2L); logger.log(Level.INFO, "버전1완" + appointmentRepository.getById(1L).getVersion()); logger.log(Level.INFO, "첫 번째 요청 완료: member1 -> member2"); } catch (Exception e) { logger.log(Level.SEVERE, "첫 번째 요청 중 예외 발생", e); flag.set(true); } finally { latch.countDown(); } }); executorService.execute(() -> { try { logger.log(Level.INFO, "두 번째 요청 시작: member2 -> member1"); logger.log(Level.INFO, "버전2전" + appointmentRepository.getById(1L).getVersion()); appointmentUserService.updateAuthority(1L, 2L, 1L); logger.log(Level.INFO, "버전2완" + appointmentRepository.getById(1L).getVersion()); logger.log(Level.INFO, "두 번째 요청 완료: member2 -> member1"); } catch (Exception e) { logger.log(Level.SEVERE, "두 번째 요청 중 예외 발생", e); flag.set(true); } finally { latch.countDown(); } }); latch.await(); };위와 같이, 두 개의 스레드에서 진행을 하였고, 각 스레드 내에서 updateAuthority()를 실행 전후에 version을 찍어보았으나, 찍힌 4개의 version 모두 0이 나왔고 또한, 동시성 제어도 안되는 상황입니다.왜 0이 나오는걸까요.. 궁금합니다!(컴파일 에러는 없습니다)
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000004
UE_LOG(LogTemp, Log, TEXT("%s 수업에 입장합니다.")); f로그에 %s등을 넣고 뒤에 *Name을 뺴먹고 Interface 호출시 잘못된 액세스 오류 발생하였습니다. %s를 지워주니까 잘 동작합니다!좋은 강의 해주셔서 감사합니다!
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
폴더 이름 제일 앞에 @를 붙이는 이유가 궁굼해요
보통 회사들이 폴더 이름 앞에 @붙여 사용하는지 궁굼하고 왜 붙이는지도 궁굼합니다.
-
미해결
Southwest Airlines PWM Terminal
Traveling is made simple by the welcoming and accommodating Southwest Airlines PWM Terminal in Portland. The airport's friendly staff and well-planned layout make it simple and speedy for passengers to board flights. By stopping by the terminal, travelers to and from Portland may experience a stress-free and delightful journey, highlighting Southwest's commitment to dependability and accessibility.It's perfect for comfortable travel because to its fast operations and laid-back ambiance. During the whole check-in process and the flight, passengers gain access to Southwest's well-known politeness and commitment to making flying easier.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
실무에서 매핑 테이블은 어떻게 활용할 수 있을까요?
토이 프로젝트를 진행하던 중 궁금한 내용이 생겨서 질문 드립니다.과거 Mybatis와 같은 것을 활용해 진행할 때는코드 매핑 테이블에 코드값 (기본키)과 코드명 이렇게 있고특정 테이블에서는 이러한 코드 값 키를 들고 있어 서브쿼리를 활용해 코드 명을 가져오는 방식으로 활용했습니다.JPA에서 위 구조를 활용하려면 특정 엔티티에 코드 엔티티를 넣고 서로 연관관계를 걸어 준 후에 fetch join으로 select 하는게 베스트 일까요?
-
해결됨Django REST Framework 핵심사항
vscode 실행안됨
안녕하세요.현재 상황은VueDjAgency-ch0 디렉터리에서 vscode 실행가상환경 만들고python = 3.10, django = 4.0, pillow, djangorestframework 설치완료했습니다.1월 경에 올리신 CDN 에러 해결 코드도 수정했습니다.python manage.py runserver 하면무한 로딩되고 페이지에는 아무것도 뜨지 않습니다.어떻게 해야할까요?
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
백프레셔 전략 관련해서
폐기와 드랍의 차이를 정확히 모르겠습니다. subscriber 입장에선 버퍼가 다시 비어져 있을 때 처리는 똑같아 보이는데 폐기는 publisher 에서 데이터 삭제를 의미하고 drop 은 데이터 건너 뛰기로 이해 하면 될까요?